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

如何基于子列表第二个元素找出嵌套列表中的重复项

解决方案

针对大数据场景,推荐用**集合(set)**记录已出现的子列表第二个元素——集合的存在性检查时间复杂度为O(1),远优于列表的O(n),能大幅提升处理效率。具体实现逻辑如下:

  1. 初始化三个变量:

    • unique:存储唯一子列表(保留完整元素)
    • duplicate:存储重复子列表(保留完整元素)
    • seen:集合,用于快速判断子列表第二个元素是否已出现
  2. 遍历原嵌套列表的每个子列表:

    • 若子列表的第二个元素不在seen中,将整个子列表加入unique,同时把该元素加入seen
    • 若已存在,则将整个子列表加入duplicate

代码实现

a = [['1', '1', '2'], ['2', '2', '3'], ['2', '1', '2']]
unique = []
duplicate = []
seen = set()

for row in a:
    key = row[1]
    if key not in seen:
        unique.append(row)
        seen.add(key)
    else:
        duplicate.append(row)

print("unique:", unique)  # 输出: [['1', '1', '2'], ['2', '2', '3']]
print("duplicate:", duplicate)  # 输出: [['2', '1', '2']]

适配大数据的优势

  • 集合的in操作平均时间复杂度为O(1),遍历整个列表的时间复杂度为O(n),整体效率极高
  • 无需额外复杂数据结构,内存占用低,适合处理大规模数据集

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:22:03