找到两个列表的成员不同的位置

时间:2016-04-30 06:07:05

标签: python

我有以下两个大小相同的字符串列表:

l1 = ['foo', 'foo','bar','cho']
l2 = ['foo', 'qux','bar','cxx']
              *           *

我想要做的是找到成员不同的位置, 得到以下特性:

1, 3

我们怎么能这样做?

2 个答案:

答案 0 :(得分:1)

您可以使用列表理解:

>>> [i for i, v1 in enumerate(l1) if v1 != l2[i]]
[1, 3]

这将迭代第一个列表,并将值与第二个列表进行比较,如果它们不匹配,则将索引添加到结果中。

答案 1 :(得分:1)

在迭代2个相同大小的列表时,请使用zip

diff = [i for i, (x, y) in enumerate(zip(l1, l2)) if x != y]