计算列表元组中每个列表中给定单词的出现次数

apo*_*l96 3 python list append count

我有一个标记化句子列表,我想计算几个单词的集体出现次数:例如:

example_list = (['hey', 'there', 'you', 'how', 'are', 'you'],
                ['i', 'am', 'fine', 'how', 'about', you],
                ['i', 'am', 'good'])
Run Code Online (Sandbox Code Playgroud)

现在我想计算每个列表中以下单词出现的次数并将分数附加到列表中

score = []
test = ['hey', 'you']
Run Code Online (Sandbox Code Playgroud)

我尝试以下代码:

for i in range(len(test)):
   for j in range(len(example_list)):
       score1.append(example_list[j].count(test[i]))
Run Code Online (Sandbox Code Playgroud)

并获得以下输出:

[1, 0, 0, 2, 1, 0]
Run Code Online (Sandbox Code Playgroud)

而我想要输出:

[3, 1, 0]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Dan*_*ejo 6

您可以在列表理解中使用sum

example_list = (['hey', 'there', 'you', 'how', 'are', 'you'],
                ['i', 'am', 'fine', 'how', 'about', 'you'],
                ['i', 'am', 'good'])



test = ['hey', 'you']


score = [sum(s in test for s in lst) for lst in example_list]
print(score)
Run Code Online (Sandbox Code Playgroud)

输出

[3, 1, 0]
Run Code Online (Sandbox Code Playgroud)

如果test足够大,请考虑使用集合。