我试图得到一个元组列表的列表:类似于[ [(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 ×1