在 Python 中查找列表中给定元素的频率之和
给定列表中包含许多重复项。我们感兴趣的是找出列表中某些重复项的频率之和。以下是我们如何实现这一点的方法。
使用 sum 函数
我们有两个列表。一个包含值的列表,另一个包含需要从第一个列表中检查频率的值。因此,我们创建一个 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
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
广告