python - 如何逐个字符比较 2 个不同的字符串,看看有多少数字匹配?
问题描述
我正在尝试比较 2 个不同的字符串,看看有多少字母在它的位置匹配:
str1 = 'afbhsnage'
str2 = 'afbfsnaee'
如何比较两个字符串并找出匹配的字母数量,但它们必须是相同的索引才能匹配?
例如,每个字符串中的前 3 个字母匹配,但第 4 个字母不匹配,我希望保留有多少个字母匹配的分数。
我知道我需要一个递增的循环来检查每个索引,但我被困在那个部分。
解决方案
sum(a == b for a, b in zip(str1, str2))
这取决于True
等于 1 和False
0的事实。zip()
同时为所有可迭代对象获取每个索引处的元素,即str1[i]
和str2[i]
。它还具有迭代最短长度的功能。如果您要使用常规循环复制上述内容,那就是
tot = 0
# if both strings are equal in length `range(len(str1))` will suffice
for i in range(min(len(str1), len(str2))):
tot += str1[i] == str2[i]
推荐阅读
- python - 蟒蛇 - 稳定的雨
- cube.js - 当我使用 Playground/generate-schema 自动生成模式时,如何将元数据放入多维数据集的模式中?
- postgresql - 在 knex 迁移中添加和删除约束
- linux - 我现在在 snapcraft 上上传了 snap,我该如何删除它?
- java - 如何在 Applock 的锁屏上展示广告?
- sql - 如何使用 union all 计算 ROWCOUNT_BIG() 值
- python - 根据性别分组名称并计算它们的数量
- java - firestore 回调方法是否在单独的线程中运行?
- react-native - 反应原生 Flatlist TouchableOpacity OnPress 在 Android 上不起作用
- php - mysql检查两列之间的预订重叠时间