Python错误集锦:list、dict类型的数据作为set的元素报TypeError: unhashable type: ‘list’,TypeError: unhashable type: ‘dict’

原文链接: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等编程知识

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注