data_keys=list(set(data_keys))
print data_keys
我尝试删除此列表中的重复键,但发现此错误。
我正在为此寻找简单的解决方案。
错误讯息:
data_keys=list(set(data_keys))
TypeError: unhashable type: 'list'
答案 0 :(得分:2)
因为data_list
中有list
类型的项目。 set()
只能用于hashable对象,而list不可用。例如:
>>> data_list = [1, 2, 3] # All numbers, works fine
>>> set(data_list)
{1, 2, 3}
>>> data_list = [1, 2, 3, [1, 2, 3]] # Has `list` as an element
>>> set(data_list) # Raises `TypeError`
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
为了使其工作,您可以将嵌套列表转换为tuple
:
>>> data_list = [1, 2, 3, (1, 2, 3)]
# ^ It is `tuple` instead of `list`
>>> set(data_list) # works fine
{1, 2, 3, (1, 2, 3)}