如何获取Python嵌套列表中各元素的出现频率
统计嵌套列表元素出现频率
给定嵌套列表:
Data = [['a', 'b'], ['b', 'c', 'a'], ['h', 'y', 'g'], ['a', 'c', 'y', 'b'], ['a', 'h']]
方法一:用collections.Counter(推荐,简洁高效)
Python标准库collections里的Counter是专门用来统计元素频率的工具,配合嵌套列表的扁平化处理就能快速实现需求:
from collections import Counter # 将嵌套列表转为一维列表(扁平化) flat_data = [item for sublist in Data for item in sublist] # 统计每个元素的出现次数 frequency = Counter(flat_data) # 按指定格式输出结果 for item, count in sorted(frequency.items()): print(f"{item} = {count}")
运行后输出:
a = 4 b = 3 c = 2 g = 1 h = 2 y = 2
方法二:基础循环实现(适合理解原理)
如果不想依赖标准库,可以手动遍历嵌套列表,用字典记录每个元素的出现次数,适合新手理解底层逻辑:
frequency = {} # 遍历外层列表的每个子列表 for sublist in Data: # 遍历子列表中的每个元素 for item in sublist: # 元素不在字典里就初始化为0,再计数加1;已存在则直接加1 frequency[item] = frequency.get(item, 0) + 1 # 按指定格式输出结果 for item, count in sorted(frequency.items()): print(f"{item} = {count}")
这段代码的输出和方法一完全一致。
内容的提问来源于stack exchange,提问作者Casey
相关产品推荐
相关产品推荐

