计算python中的字符串差异

Noa*_*man -3 python string difflib

我试图计算python中两个字符串之间不同的字符数.理想情况下,我想要一个函数,就像在C中的strdif一样.我在python的difflib中看到ndiff,但是返回一个Differ对象,而我想要一个简单的整数(例如:"10011"vs"00110"返回3).我知道答案必须简单,但我无法理解,我宁愿使用库函数而不是自己编写

Jor*_*ley 5

s1,s2 = "10011", "00110"
print sum(a!=b for a,b in zip(s1,s2)) + abs(len(s1)-len(s2))
Run Code Online (Sandbox Code Playgroud)

应该工作正常.

或正如John Clements指出的那样

print sum(a!=b for a,b in map(None,s1,s2))
Run Code Online (Sandbox Code Playgroud)

这避免了额外的长度检查...如果字符串通常是相同的长度(并且它是一个很棒的解决方案,将会稍快)!...

或者甚至更简洁(现在它开始进入黑魔法领域,在那里读者理解力已经消失,我可能不会建议在其他人可能看到的任何地方实际实现它,如果你确实添加了很多评论)

from operator import ne
print sum(map(ne, s1, s2))
Run Code Online (Sandbox Code Playgroud)