Python如何对列表元素分组统计出现次数并按指定格式输出
Python实现按分隔符拆分分组统计次数的方案
完整可运行代码(依赖内置标准库)
from collections import defaultdict a = ['426::1898','426::1898','426::1900','425::1898'] # 初始化嵌套统计结构:外层key为拆分后的后缀,内层key为前缀,值为对应出现次数 stat = defaultdict(lambda: defaultdict(int)) for item in a: prefix, suffix = item.split('::') stat[suffix][prefix] += 1 # 按要求格式输出 for suffix, prefix_count in stat.items(): parts = [f"{prefix} {cnt} times" for prefix, cnt in prefix_count.items()] print(f"{suffix}: {', '.join(parts)}")
运行输出结果
1898: 426 2 times, 425 1 times 1900: 426 1 times
无额外导入的原生实现版本
如果不想引入collections依赖,可以用普通字典实现,效果完全一致:
a = ['426::1898','426::1898','426::1900','425::1898'] stat = {} for item in a: prefix, suffix = item.split('::') if suffix not in stat: stat[suffix] = {} if prefix not in stat[suffix]: stat[suffix][prefix] = 0 stat[suffix][prefix] += 1 for suffix, prefix_count in stat.items(): parts = [f"{prefix} {cnt} times" for prefix, cnt in prefix_count.items()] print(f"{suffix}: {', '.join(parts)}")
内容的提问来源于stack exchange,提问作者Miguelii
相关产品推荐
相关产品推荐

