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

4

我有一个简单的程序:

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

它运行良好。第一个print生成{(1,2):3},第二个生成3

但在我的“大型”程序中,我似乎做了同样的事情,但遇到了list indices must be integers, not tuple错误。这个错误消息是什么意思,我该如何解决这个问题?

3个回答

13
如果你看到这个错误,那么你试图索引的是一个列表而不是字典。
Python列表(如 [1, 2, 3])必须使用整数作为索引值。字典可以使用更广泛的不同类型的值作为索引,这就是你在示例中所拥有的。

6
请注意,x={}定义了x字典,而不是列表(列表可以有任何可哈希的键,并且使用语法糖将d[key1,key2]转换为d[(key1,key2)])。
然而,如果确实需要多维数组,请参见numpy

2
x = {}

这将创建一个字典,而不是列表。
x[1,2] = 3

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

列表只能通过整数进行索引。也许您混淆了[]和{},使用了字典?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接