在 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

更新于: 2020年5月5日

428 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告