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

时间:2015-03-23 12:28:04

标签: python list python-3.x comparison

我尝试使用cmp(list1, list2)来学习它在Python 3.3中不再受支持。我尝试了很多其他复杂的方法,但都没有。

我有两个列表,其中只包含单词,我希望它检查两者中有多少单词功能,并返回多少单词。

2 个答案:

答案 0 :(得分:1)

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

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']

答案 1 :(得分:0)

如果您只想要计算多少单词是常见的

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

如果您确实想要获取共享词的列表

common_words = set(list1).intersection(list2)