如何统计列表中子列表类型元素的重复出现次数
嵌套子列表重复次数统计方案
Python中列表属于不可哈希类型,无法直接作为字典的key做次数统计,所以我们可以先将子列表转为可哈希的元组完成统计,输出时再转回列表即可。
方法1:使用collections.Counter实现(推荐)
代码示例:
from collections import Counter source_list = [['1', '2'], ['1', '2'], ['1', '2'], ['3','4'], ['3','4'],['3','4'],['3','4']] count_res = Counter(tuple(sub) for sub in source_list) for sub_tuple, count in count_res.items(): print(f"元素 {list(sub_tuple)} 重复出现了 {count} 次")
运行输出:
元素 ['1', '2'] 重复出现了 3 次
元素 ['3', '4'] 重复出现了 4 次
方法2:原生字典实现(无额外依赖)
如果不想引入额外依赖,可使用原生字典手动统计:
source_list = [['1', '2'], ['1', '2'], ['1', '2'], ['3','4'], ['3','4'],['3','4'],['3','4']] count_dict = {} for sub in source_list: key = tuple(sub) count_dict[key] = count_dict.get(key, 0) + 1 for k, v in count_dict.items(): print(f"元素 {list(k)} 重复出现了 {v} 次")
运行效果和方法1完全一致。
内容的提问来源于stack exchange,提问作者Rolando Lopez
相关产品推荐
相关产品推荐

