我必须创建一个带有两个列表的函数。第一个是像["tant", "", "you"]
这样的单词列表,第二个列表有["hi", "something", "both", "sporte "]
。我想要一个字典,其中第一个列表的单词出现在第二个列表中。
我的代码给了我相反的信息,即给出了第二个列表的单词出现在第一个列表中的次数。 这是我的代码:
from collections import Counter
timesmumber def (x, y):
number = x
dicitio = Counter (number)
return dict (dicitio)
答案 0 :(得分:4)
您可以使用list.count
方法使用词典理解:
>>> l2=["hi", "something", "both", "sporte "]
>>> l1=["tant", "", "you","hi"]
>>> {i:l2.count(i) for i in l1}
{'': 0, 'you': 0, 'tant': 0, 'hi': 1}
如果您想检查前缀,可以使用sum
功能代替count
:
>>> l1=['some', 'tant', '', 'you', 'hi']
>>> l2=['hi', 'something', 'both', 'sporte ']
>>> {k:sum(1 for j in l2 if k and k in j) for k in l1}
{'': 0, 'hi': 2, 'you': 0, 'tant': 0, 'some': 1}
答案 1 :(得分:4)
所以假设你有一个清单
first_list = ['tant', '', 'you']
和第二个清单
second_list = ['hi', 'something', 'both', 'sporte', 'tant']
您可以使用内置count
方法
{nr : second_list.count(nr) for nr in first_list}