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

原文链接:http://www.juzicode.com/archives/2715

错误提示:

构建set类型的数据时,使用tuple类型的数据作为元素没有问题,使用list、dict类型的数据作为元素报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类型。

t = ('juzicode.com', '桔子code', '橙子')
l = ['juzicode.com', '桔子code', '橙子']
l2 = tuple(l)
s = {t,l2}
print(s)
posted @ 2020-12-19 11:42  桔子code  阅读(180)  评论(0编辑  收藏  举报