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

Python中如何对不可哈希的列表进行去重?

解决列表去重时的TypeError问题

出现TypeError: unhashable type: 'list'是因为set()要求元素必须是可哈希类型(比如字符串、元组),但你的列表a中的元素是子列表(如['JR06-C5-p21']),而列表属于不可哈希类型,无法直接存入集合去重。

以下是几种可行的解决方法:

方法1:将子列表转为元组去重(简单直接)

先把每个子列表转成可哈希的元组,用集合去重后再转回列表:

a = [['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20']]

# 转元组去重
unique_tuples = list(set(tuple(item) for item in a))
# 转回列表格式
unique_list = [list(t) for t in unique_tuples]
print(unique_list)

方法2:手动遍历保留顺序(维持原列表元素顺序)

如果需要保留原列表中元素首次出现的顺序,可用这种方法:

a = [['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20']]

unique_list = []
seen = set()
for item in a:
    # 将子列表转为元组存入集合记录已出现元素
    item_tuple = tuple(item)
    if item_tuple not in seen:
        seen.add(item_tuple)
        unique_list.append(item)
print(unique_list)

方法3:提取子列表元素去重(适用于子列表仅含单个元素的情况)

你的子列表都只有一个元素,可以先提取元素去重,再重新包装成子列表:

a = [['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR06-C5-p21'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20'], ['JR08-C2-p20']]

# 提取子列表中的唯一元素去重
unique_elements = list(set(item[0] for item in a))
# 重新包装为子列表格式
unique_list = [[elem] for elem in unique_elements]
print(unique_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:55:17