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

Python不使用第三方包实现嵌套列表的子列表去重

嵌套列表子列表去重实现(Python原生无第三方依赖)

核心思路

Python中列表属于不可哈希类型,无法直接放入set完成去重,我们可以先将每个子列表转为可哈希的元组,去重完成后再转回列表结构即可。

方法1:基础去重(不保留原始顺序)

A = [[-1, 0, 1], [-1, -1, 2], [-1, 0, 1]]
unique_A = [list(item) for item in set(tuple(sublist) for sublist in A)]
print(unique_A)

输出结果:[[-1, 0, 1], [-1, -1, 2]](子列表顺序可能随Python版本发生变化)

方法2:保留原始出现顺序的去重

如果需要严格保持子列表在原始列表中首次出现的顺序,可使用遍历加标记的方式实现:

A = [[-1, 0, 1], [-1, -1, 2], [-1, 0, 1]]
seen = set()
unique_A = []
for sublist in A:
    t = tuple(sublist)
    if t not in seen:
        seen.add(t)
        unique_A.append(sublist)
print(unique_A)

输出结果固定为:[[-1, 0, 1], [-1, -1, 2]]

注意事项

  • 上述方法仅适用于子列表的所有元素都是可哈希类型(数字、字符串、元组等)的场景,如果子列表内还有更深层的嵌套列表,需要先递归将深层结构转换为可哈希类型后再执行去重逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 05:30:03