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

Pythonic方式查找嵌套列表中至少出现在两个子列表的公共元素

Python实现筛选嵌套列表中至少在两个子列表出现的元素

前置说明

你给出的示例嵌套列表存在语法错误(第三个子列表后缺少逗号),修正后的测试数据如下:

p = [
    [1,2,3],
    [1,9,9],
    [7,2,3],
    [1,2,4]
]

核心思路

要注意同一子列表内重复出现的元素仅统计1次,比如子列表[1,9,9]中的9,只会被计为在1个子列表中出现。我们只需要统计每个元素所属的不同子列表数量,筛选出数量≥2的元素即可。

最简Pythonic实现

直接用Python标准库collections.Counter实现,代码简洁易读:

from collections import Counter

# 统计每个元素出现在多少个不同子列表中
ele_count = Counter(num for sub in p for num in set(sub))
# 筛选符合条件的元素,按升序排序对齐示例结果
result = sorted(k for k, v in ele_count.items() if v >= 2)
print(result)

运行输出:

[1, 2, 3]

无依赖原生实现

如果不想导入额外模块,也可以用原生字典统计:

ele_count = {}
for sub in p:
    for num in set(sub):
        ele_count[num] = ele_count.get(num, 0) + 1
result = sorted(k for k, v in ele_count.items() if v >= 2)

两种实现效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:30:01