gpt4 book ai didi

python - 计算两个字符串之间的差异

转载 作者:太空狗 更新时间:2023-10-29 22:11:08 30 4
gpt4 key购买 nike

我正在尝试计算两个导入字符串(seq1 和 seq2,导入代码未列出)之间的差异数,但在运行程序时没有得到任何结果。我希望输出显示为“2 个差异”之类的内容。不确定我哪里出错了......

def difference (seq1, seq2):    
count = 0
for i in seq1:
if seq1[i] != seq2[i]:
count += 1
return (count)
print (count, "differences")

最佳答案

您可以使用生成器表达式非常简单地完成此操作

count = sum(1 for a, b in zip(seq1, seq2) if a != b)

如果序列的长度不同,那么您可以将长度的差异视为内容的差异(我会)。在这种情况下,标记一个额外的部分以说明它

count = sum(1 for a, b in zip(seq1, seq2) if a != b) + abs(len(seq1) - len(seq2))

另一种利用 True1False0 的奇怪方式是:

sum(a != b for a, b in zip(seq1, seq2))+ abs(len(seq1) - len(seq2))

zip 是一个 python 内置函数,可让您一次迭代两个序列。它也会终止于最短的序列,观察:

>>> seq1 = 'hi'
>>> seq2 = 'world'
>>> for a, b in zip(seq1, seq2):
... print('a =', a, '| b =', b)
...
a = h | b = w
a = i | b = o

这将计算类似于 sum([1, 1, 1]),其中每个 1 代表两个序列之间的差异。 if a != b 过滤器使生成器仅在 ab 不同时生成一个值。

关于python - 计算两个字符串之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423448/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com