在Python列表中找到给定元素的频率总和

给定的列表包含许多重复项。我们有兴趣找出列表中重复出现的某些此类项目的频率总和。以下是我们如何实现这一目标的方法。

我们有两个列表。一个具有值列表,另一个具有需要从第一个列表中检查其频率的值。因此,我们创建了一个for循环,以计算第一个列表中第二个列表中元素的出现次数,然后应用sum函数获得频率的最终和。

示例

chk_list= ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']

# Apply sum
res = sum(big_list.count(elem) for elem in chk_list)

# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)

输出结果

运行上面的代码给我们以下结果-

Given list to be analysed:
['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
Given list to with values to be analysed:
['Mon', 'Tue']
Sum of the frequency: 5

与collections.Counter

来自收集器的计数器功能可以通过将其应用到必须分析其值的列表中,同时遍历较小的列表(仅包含需要确定频率的元素)来获得所需的结果。

示例

from collections import Counter

chk_list= ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']

# Apply Counter

res = sum(Counter(big_list)[x] for x in chk_list)

# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)

输出结果

运行上面的代码给我们以下结果-

Given list to be analysed:
['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
Given list to with values to be analysed:
['Mon', 'Tue']
Sum of the frequency: 5