You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何统计列表中多个指定项的出现频率并输出对应相对频率

Python 无额外模块实现列表元素频率统计

需求说明:给定textList和searchFor两个列表,按searchFor的元素顺序统计每个元素在textList中的出现次数,结果存入frequencyList对应位置,不允许导入任何额外模块。

方法1:小数据量场景(简洁写法)

直接通过列表推导式配合列表原生count()方法实现,代码简洁易读:

textList = ['a','b','a','c']
searchFor = ['a','b']

frequencyList = [textList.count(item) for item in searchFor]
  • 执行结果:frequencyList = [2, 1],完全符合要求
  • 注意:该方法每次调用count()都会遍历一次textList,适合textList长度较小的场景

方法2:大数据量场景(高效写法)

预先生成textList的元素计数字典,仅需遍历textList一次,后续直接按searchFor顺序取值即可,时间复杂度更低:

textList = ['a','b','a','c']
searchFor = ['a','b','d']

# 预统计所有元素出现次数
count_dict = {}
for item in textList:
    count_dict[item] = count_dict.get(item, 0) + 1

# 按searchFor顺序生成结果,不存在的元素返回0
frequencyList = [count_dict.get(item, 0) for item in searchFor]
  • 执行结果:frequencyList = [2, 1, 0],自动兼容searchFor包含textList不存在元素的场景
  • 优势:时间复杂度为O(len(textList) + len(searchFor)),大数据量下性能远优于方法1

内容的提问来源于stack exchange,提问作者Jack Krebs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:27:00