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

Python中按前5元素唯一规则移除嵌套列表的重复子列表

解决Python嵌套列表按前5元素去重的问题

给定一个每个子列表都包含6个元素的嵌套列表,我们需要只保留前5个元素唯一的子列表——第6个元素可以和其他子列表重复,同时还要保留原列表的顺序。

实现思路

用一个集合记录已经出现过的前5元素组合(列表不能直接存入集合,转成元组即可),遍历原列表时做如下判断:

  • 如果当前子列表的前5元素组合没在集合里:把这个子列表加入结果列表,同时将该组合存入集合
  • 如果已经出现过:直接跳过该子列表

代码示例

k = [[1, 2, 3, 4, 5, 6], [1, 2, 2, 3, 4, 6], [5, 6, 2, 2, 3, 6], [1, 2, 3, 4, 5, 5], [3, 3, 6, 4, 7, 7], [4, 4, 1, 2, 5, 6]]

seen = set()
result = []
for sublist in k:
    # 提取前5个元素转为元组作为唯一标识
    key = tuple(sublist[:5])
    if key not in seen:
        seen.add(key)
        result.append(sublist)

print(result)

运行代码后输出的结果符合要求:

[[1, 2, 3, 4, 5, 6], [1, 2, 2, 3, 4, 6], [5, 6, 2, 2, 3, 6], [3, 3, 6, 4, 7, 7], [4, 4, 1, 2, 5, 6]]

(注:原示例中的[1,2,3,4,5,5]因前5元素和第一个子列表重复,会被过滤)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:29:59