元素字符串比较

use*_*976 -8 python string comparison element

我需要一个快速函数来对两个字符串进行逐元素比较.例:

text1 = 'absabeadg'
text2 = 'abSatyaxguz'
diff = compare(text1,text2) # should return diff=[1,1,0,1,0,0,1,0,1,0,0]
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 13

显示零努力,但到底是什么,这是周末:

>>> text1 = 'absabeadg'
>>> text2 = 'abSatyaxguz'
>>> 
>>> from itertools import izip_longest
>>> 
>>> [int(c0==c1) for c0, c1 in izip_longest(text1, text2)]
[1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0]
Run Code Online (Sandbox Code Playgroud)

这使用izip_longest结合(潜在地)不同长度序列在一起,并且事实int(True) == 1int(False) == 0.

[更新:]

由于关于这个输出是否有意义似乎存在一些争议,这里有一个不同的方法给出了相同的答案:

>>> [int(text1[i:i+1] == text2[i:i+1]) for i in range(max(len(text1), len(text2)))]
[1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0]
Run Code Online (Sandbox Code Playgroud)

(辩论,就像我所知道的那样,似乎是关于0在比较什么东西时回归是否有意义.我认为这是完全合理的,并且是字符串切片的行为 - 我们可以将空字符串与非空字符串进行比较字符串,总是得到False == 0.)