原文链接:http://www.juzicode.com/archives/2715
错误提示:
构建set类型的数据时,使用tuple类型的数据作为set的元素没有问题,使用list、dict类型的数据作为set的元素报TypeError: unhashable type: ‘list’、 TypeError: unhashable type: ‘dict’
#juzicode.com/vx:桔子code
t = ('juzicode.com', '桔子code', '橙子')
l = ['juzicode.com', '桔子code', '橙子']
s = {t,l}
print(s)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-0b5bb290b6d5> in <module>
2 t = ('juzicode.com', '桔子code', '橙子')
3 l = ['juzicode.com', '桔子code', '橙子']
----> 4 s = {t,l}
5 print(s)
TypeError: unhashable type: 'list'
#juzicode.com/vx:桔子code
t = ('juzicode.com', '桔子code', '橙子')
d = {'A':'juzicode.com','B':'桔子code','C':'橙子'}
s = {t,d}
print(s)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-09a980be5a48> in <module>
2 t = ('juzicode.com', '桔子code', '橙子')
3 d = {'A':'juzicode.com','B':'桔子code','C':'橙子'}
----> 4 s = {t,d}
5 print(s)
TypeError: unhashable type: 'dict'
错误原因:
1、set不支持list和dict类型的元素。
解决方法:
1、list类型数据可以改为tuple类型作为set的元素,注意这里并不说将list的元素拆分出来作为set的元素,list中的元素如果是hashble类型的仍然是可以作为set元素的。
t = ('juzicode.com', '桔子code', '橙子')
l = ['juzicode.com', '桔子code', '橙子']
l2 = tuple(l)
s = {t,l2}
print(s)
关注微信公众号:“桔子code”,欢迎后台留言撩我,我会尽我所能为你解惑Python,C等编程知识