我尝试使用cmp(list1, list2)
来学习它在Python 3.3中不再受支持。我尝试了很多其他复杂的方法,但都没有。
我有两个列表,其中只包含单词,我希望它检查两者中有多少单词功能,并返回多少单词。
答案 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)