内置类型的文档set
says:
class set([iterable])
返回一个新的 set 或 freezeset 对象
其元素取自
可迭代的。集合的元素必须
可散列。
没关系,但是为什么会这样:
>>> l = range(10)
>>> s = set(l)
>>> s
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
而这并没有:
>>> s.add([10])
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
s.add([10])
TypeError: unhashable type: 'list'
两者都是列表。是一些magic初始化期间发生?
当你初始化一个集合时,你提供了一个值的列表,这些值必须each可散列。
s = set()
s.add([10])
是相同的
s = set([[10]])
这会引发与您现在看到的相同的错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)