小编pyl*_*ner的帖子

TypeError:不可用的类型

我试图得到一个元组列表的列表:类似于[ [(1,0),(2,0),(3,0)],[(1,1),(2,1),(3,1)....]] 我使用这个语句

set([(a,b)for a in range(3)]for b in range(3))
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误

TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

我对Python Guru有2个问题:

a)当我看到Hashable的Python定义时 -

"如果一个对象具有一个在其生命周期内永远不会改变的哈希值(它需要一个hash()方法),那么该对象是可以清除的"

当我在上面的表达式上使用dir函数时

dir([(a,b)for a in range(3)]for b in range(3))
Run Code Online (Sandbox Code Playgroud)

似乎说它就在__hash__那里.那么,为什么我会收到错误?

我能够[[(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)]] 通过使用list命令获得:

list(list((a,b) for a in range(3)) for bin range(3))
Run Code Online (Sandbox Code Playgroud)

b)列表和设置都将Iterable作为参数.为什么一个工作(列表)而另一个不工作(设置)?

python

30
推荐指数
5
解决办法
12万
查看次数

标签 统计

python ×1