如何比较两个列表中的项目 Python 3.3

How To Compare Items In Two Lists Python 3.3

我尝试使用 cmp(list1, list2) 了解到 Python 3.3 不再支持它。我尝试了许多其他复杂的方法,但 none 奏效了。

我有两个列表,其中都只包含单词,我希望它检查两个列表中有多少单词以及return有多少单词。

如果你只是想统计有多少个词是常见的

common = sum(1 for i in list1 if i in list2)

如果你真的想得到共享词的列表

common_words = set(list1).intersection(list2)

您可以使用 & 找到设置交集的长度,如下所示:

len(set(list1) & set(list2))

示例:

>>>len(set(['cat','dog','pup']) & set(['rat','cat','wolf']))
1
>>>set(['cat','dog','pup']) & set(['rat','cat','wolf'])
{'cat'}

或者,如果您出于某种原因不想使用集合,您可以随时使用 collections.Counter,它支持大多数多重集操作:

>>> from collections import Counter 
>>> print(list((Counter(['cat','dog','wolf']) & Counter(['pig','fish','cat'])).elements()))
['cat']