为什么列表索引必须是整数,而不是元组?

Rom*_*man 4 python dictionary tuples list

我有这个简单的程序:

x = {}
x[1,2] = 3
print x
print x[1,2]
Run Code Online (Sandbox Code Playgroud)

它工作正常.拳头print生成{(1,2):3},第二个生成3.

但在我的"大"程序中,我似乎做了同样的但是得到了一个list indices must be integers, not tuple错误.此错误消息的含义以及如何解决此问题?

unw*_*ind 12

如果您收到该错误,那么您正在尝试索引列表,而不是字典.

[1, 2, 3]必须使用整数值索引Python列表.字典是您示例中的字典,可以通过更广泛的不同值进行索引.


And*_*ffe 6

请注意,x={}定义x字典,而不是列表(可以将任何hashable作为键,并使用转换d[key1,key2]为的语法糖d[(key1,key2)]).

但是,请参阅numpy,它允许多维数组,如果这真的是你想要的.