Python检查多个列表的相似之处

时间:2012-02-26 06:18:53

标签: python list

例如,我有3个列表

list1=['Oh','My','god','I','A','List!']

list2=['Oh','What','You','Dramatic?']

Keyword=['I','Dunno','What','You','Talking','About','DOT']

修改

我想分别将列表1和2的关键字进行比较。所以它会变成:

修改

common=['What','I','You']

如果我有超过10个列表怎么办? < - 可选问题。

3 个答案:

答案 0 :(得分:3)

可能使用set

common = list(set(list1) & set(list2) & set(Keyword))

但是,您可能需要通过“每个列表中的共同词语”来定义您的意思,因为您列出的词语只对您显示的列表的两个是通用的。

答案 1 :(得分:2)

您可以将它们转换为集合,然后进行交集:

intersect = list(set(list1) & set(list2)) & set(Keyword))

答案 2 :(得分:0)

由于您的评论表明您希望Keyword 中的项目 list1list2,您可能不想要三者的交集。相反,您应该获得list1list2的并集,然后获得该结果与Keyword的交集。

以下内容应该能满足您的需求:

common = list((set(list1) | set(list2)) & set(Keyword))

或者是一种更具可扩展性的替代方法(感谢Karl的缩短版本):

lists = [list1, list2, list3, list4, list5, list6, list7, list8, list9, list10]
common = list(set().union(*lists).intersection(Keyword))