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

Python:统计字典嵌套字符串列表字符频率并返回各键最高频字符

统计字典嵌套列表中各键对应出现次数最多的字符

给定初始字典:

res = {0: ['a', 'a', 'b'], 1: ['e'], 2: ['i', 'x', 'i', 'c']}

期望处理后得到每个键对应出现次数最多的字符:

{0: 'a', 1: 'e', 2: 'i'}

解决方案:使用collections.Counter

Python标准库的Counter可以快速统计字符频率,结合most_common()方法直接获取出现次数最多的字符:

from collections import Counter

res = {0: ['a', 'a', 'b'], 1: ['e'], 2: ['i', 'x', 'i', 'c']}

for k, v in res.items():
    # 统计列表内字符频率,提取出现次数最多的第一个字符
    res[k] = Counter(v).most_common(1)[0][0]

print(res)
# 输出: {0: 'a', 1: 'e', 2: 'i'}

代码说明

  • Counter(v)将输入列表转换为计数器对象,键是字符,值是对应出现次数
  • most_common(1)返回一个包含元组的列表,元组格式为(字符, 出现次数),取第一个元素就是出现次数最多的字符信息
  • 通过[0][0]从元组中提取出目标字符

可选:处理平局情况

如果某个列表存在多个出现次数相同的高频字符(比如['a','b','a','b']),most_common(1)会返回列表中最先出现的那个字符。如果需要返回所有高频字符,可以修改代码:

from collections import Counter

res = {0: ['a','b','a','b'], 1: ['e'], 2: ['i', 'x', 'i', 'c']}

for k, v in res.items():
    count = Counter(v)
    max_count = max(count.values())
    # 收集所有出现次数等于最大值的字符
    res[k] = [char for char, cnt in count.items() if cnt == max_count]

print(res)
# 输出: {0: ['a', 'b'], 1: ['e'], 2: ['i']}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:20:37