我有两个列表
list1 = ['this', 'is', 'the', 'right', 'string']
list2 = ['this', 'is', 'right']
经过比较后,我需要找出另一个仅包含
的列表list3 = ['this', 'is']
我已经尝试过使用十字路口,我知道这不是我个案的正确解决方案。
>>> list(set(list1) & set(list2))
['this', 'is', 'right']
这不是基于指数的比较。
我需要找到基于索引的比较。我的意思是,首先比较list1和list2中的第一个单词,如果匹配,则在每个列表中取下一个单词然后比较这些单词,依此类推。如果不匹配,则仅返回匹配的单词。 任何人都可以帮助我??
答案 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