Python:利用两个列表和zip()创建字典时,出现TypeError: unhashable type: 'list'解决

出现这种问题,一般是因为字典的键值列表中出现了列表,也即列表套列表。此时要检查键列表中是否有子列表,并将其改为非列表形式。

进一步说明:可哈希的数据类型,即不可改变的数据结构(字符串str、元组tuple、对象集objects、int、float),不可哈希的数据类型,即可改变的类型:list、set、dict。
在上面问题中,就是因为字典的键值不能随意更改所以不能是列表。简单问题示例如下:

正确代码:

a = ['12_ab.jg','4a_c.hjj','4a_d.hjh']
b = ['ab','ab','ab']
print(dict(zip(a,b)))
{'12_ab.jg': 'ab', '4a_c.hjj': 'ab', '4a_d.hjh': 'ab'}

a = ['12_ab.jg','4a_c.hjj','4a_d.hjh']
b = [['ab'],'ab','ab']
print(dict(zip(a,b)))
{'12_ab.jg': ['ab'], '4a_c.hjj': 'ab', '4a_d.hjh': 'ab'}

错误代码:

a = [['12_ab.jg'],'4a_c.hjj','4a_d.hjh']
b = ['ab','ab','ab']
print(dict(zip(a,b)))
TypeError: unhashable type: 'list'

发布了7 篇原创文章 · 获赞 0 · 访问量 991

猜你喜欢

转载自blog.csdn.net/qq_36814762/article/details/102175855