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

如何在Python嵌套列表中查找重复子列表并提取去重结果

Python嵌套列表全局去重解决方案

因为Python中列表属于不可哈希类型,无法直接放入集合完成去重,所以需要先将子列表转为可哈希的元组类型处理,具体实现有两种常用方案:

  • 方案一:无序去重(完全匹配题目中子列表顺序不做要求的需求)
    代码实现:

    data = [[4,5,0],[3,4,0],[4,5,0],[1,2,0],[1,2,0],[4,5,0],[3,4,0],[2,3,0]]
    # 先将所有子列表转元组放入集合去重,再转回列表格式
    unique_data = [list(item) for item in set(tuple(sub_list) for sub_list in data)]
    

    该方案时间复杂度为O(n),写法简洁效率高,仅输出结果的子列表顺序和原始数据的首次出现顺序无关。

  • 方案二:保留首次出现顺序的去重
    代码实现:

    data = [[4,5,0],[3,4,0],[4,5,0],[1,2,0],[1,2,0],[4,5,0],[3,4,0],[2,3,0]]
    seen = set()
    unique_data = []
    for sub_list in data:
        # 转元组用于哈希判断
        temp = tuple(sub_list)
        if temp not in seen:
            seen.add(temp)
            unique_data.append(sub_list)
    

    该方案时间复杂度同样为O(n),输出结果的子列表顺序和原始数据中首次出现的顺序完全一致。

你原有代码的问题在于仅做了相邻子列表的等值判断,没有全局存储已出现过的子列表记录,因此无法实现全局去重的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:18:02