python中基于索引的字符串匹配

时间:2011-12-18 06:43:49

标签: python

我有两个列表

list1 = ['this', 'is', 'the', 'right', 'string']
list2 = ['this', 'is', 'right']

经过比较后,我需要找出另一个仅包含

的列表
list3 = ['this', 'is']

我已经尝试过使用十字路口,我知道这不是我个案的正确解决方案。

>>> list(set(list1) & set(list2))
['this', 'is', 'right']

这不是基于指数的比较。

我需要找到基于索引的比较。我的意思是,首先比较list1和list2中的第一个单词,如果匹配,则在每个列表中取下一个单词然后比较这些单词,依此类推。如果不匹配,则仅返回匹配的单词。 任何人都可以帮助我??

2 个答案:

答案 0 :(得分:3)

[x for (x, y) in zip(list1, list2) if x == y]

答案 1 :(得分:2)

如果你喜欢noob-style,那试试吧。容易明白。另一个答案非常类似于函数式编程,这可能令人困惑。

list3 = list()
for x in range(min(len(list1),len(list2)):
    if list1[x] == list2[x]:
        list3.append(list1[x])
    else:
        break