首页 > 解决方案 > 在不同长度的字符串中查找不同的字符

问题描述

我有一些代码可以找到字符串之间的差异。目前它适用于相同长度的字符串,但我试图让它适用于不同长度的字符串。我怎样才能做到这一点

我添加了一个新变量longest_seq来尝试解决这个问题,但我不确定如何使用它。

ref_seq = "pandabears"
map_seq = "pondabear"
longest_seq = map_seq

if len(ref_seq) > len(map_seq):
    longest_seq == ref_seq


for i in range(len(longest_seq)):
    if ref_seq[i] != map_seq[i]: 
        print i, ref_seq[i], map_seq[i]

标签: python

解决方案


对于 Python 2,您可以使用itertools.izip

from itertools import izip

for i, j in izip(ref_seq, map_seq):
    if i != j: 
        print i, j

输出:

a o

在 Python 3 中,您可以使用内置zip函数:

for i, j in zip(ref_seq, map_seq):
    if i != j: 
        print(i, j)

zip存在于 Python 2 中,但itertools.izip建议使用它,因为它按需生成元组(在每次迭代中它生成一个新元组)而不是一次构建所有元组,在 Python 3 中,在 Python 2zip中所做itertools.izip的。


推荐阅读