Noa*_*man -3 python string difflib
我试图计算python中两个字符串之间不同的字符数.理想情况下,我想要一个函数,就像在C中的strdif一样.我在python的difflib中看到ndiff,但是返回一个Differ对象,而我想要一个简单的整数(例如:"10011"vs"00110"返回3).我知道答案必须简单,但我无法理解,我宁愿使用库函数而不是自己编写
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)
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |