我正在尝试计算python中两个字符串之间不同的字符数。理想情况下,我想要一个函数,就像 C 中的 strdif 一样。我在 python 的 difflib 中看到 ndiff,但它返回一个 Differ 对象,而我想要一个简单的整数(例如:“10011”与“00110”返回 3)。我知道答案一定很简单,但我想不通,我宁愿使用库函数而不是自己写
问问题
187 次
1 回答
5
s1,s2 = "10011", "00110"
print sum(a!=b for a,b in zip(s1,s2)) + abs(len(s1)-len(s2))
应该可以正常工作。
或者正如约翰克莱门茨指出的那样
print sum(a!=b for a,b in map(None,s1,s2))
这避免了额外的长度检查......如果字符串通常长度相同(这是一个很棒的解决方案!)......
甚至更简洁(现在它开始进入黑魔法领域,失去了足够的读者理解,我可能不建议在其他人可能看到的任何内容中实际实现它,如果你确实添加了很多评论)
from operator import ne
print sum(map(ne, s1, s2))
于 2014-09-11T20:37:25.310 回答