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

时间:2011-01-24 15:59:06

标签: python list dictionary tuples

我有这个简单的程序:

x = {}
x[1,2] = 3
print x
print x[1,2]

工作正常。第print{(1,2):3}生成3,第二个生成list indices must be integers, not tuple

但是在我的“大”程序中,我似乎做了同样的事情,但得到了{{1}}错误。此错误消息的含义以及如何解决此问题?

3 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:6)

请注意x={}x定义为词典,而不是列表(可以将任何哈希值作为键,并使用语法糖转换{{1}转到d[key1,key2])。

但请参阅numpy,它允许使用多维数组,如果这真的是你想要的那样。

答案 2 :(得分:2)

x = {}

这会创建一个字典,而不是列表。

x[1,2] = 3

将值3分配给键(1,2)元组。

列表只能用整数索引。也许你用你的词典混淆了[]和{}?