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

如何统计Python嵌套列表中各数字的子列表出现频次?

统计嵌套列表中数字在子列表的出现频次

要实现需求,核心是每个子列表中的重复数字只计一次,下面提供几种实用的实现方式:

方法一:基础循环实现(易理解)

手动遍历每个子列表,先通过集合去重,再逐个更新数字的出现次数:

nested_list = [[1, 2, 3], [1, 5], [4, 2, 6]]
count_dict = {}

for sublist in nested_list:
    # 转集合去重,避免同一子列表内重复数字多次计数
    unique_nums = set(sublist)
    for num in unique_nums:
        if num in count_dict:
            count_dict[num] += 1
        else:
            count_dict[num] = 1

print(count_dict)
# 输出: {1: 2, 2: 2, 3: 1, 4: 1, 5: 1, 6: 1}

方法二:使用collections.defaultdict简化逻辑

借助defaultdict省去判断键是否存在的步骤,代码更简洁:

from collections import defaultdict

nested_list = [[1, 2, 3], [1, 5], [4, 2, 6]]
count_dict = defaultdict(int)

for sublist in nested_list:
    for num in set(sublist):
        count_dict[num] += 1

# 可选:转换为普通字典
count_dict = dict(count_dict)
print(count_dict)

方法三:使用collections.Counter一键统计

利用生成器表达式生成所有去重后的数字,再用Counter直接统计频次,写法最简洁:

from collections import Counter

nested_list = [[1, 2, 3], [1, 5], [4, 2, 6]]
# 生成所有子列表去重后的数字迭代器
all_unique_nums = (num for sublist in nested_list for num in set(sublist))
count_dict = dict(Counter(all_unique_nums))

print(count_dict)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:36:16