我创建了一个这样的矩阵:
b = [[0 for y in range(1,4)] for x in range(1,3)]
我希望索引b[1:2][1:3]
可用,但上面的代码似乎没有这样做。
range(1,4)
应该返回1到3之间的数字,range(1,3)
应该返回数字1和2.
当我尝试将值赋给b[1][3]
时,我得到一个IndexError。对此有何解释?
答案 0 :(得分:0)
range(1,4)
是长度为3的列表,因此[0 for y in range(1,4)]
也是如此。可用于列表的索引总是从0到列表长度减1.如果您想要替代索引使用字典。
>>> range(1, 4)
[1, 2, 3]
>>> for x in range(1, 4):
... print(x)
...
1
2
3
>>> L = [0 for y in range(1, 4)]
>>> L
[0, 0, 0]
>>> L[0]
0
>>> L[1]
0
>>> L[2]
0
>>> L[3]
Traceback (most recent call last):
File "<input>", line 1, in <module>
IndexError: list index out of range