[英]assigning values in a nested list using for loops in python
我需要创建一个嵌套列表,四层深。 在第四层,我需要系统地赋值。 当第四级处于其第一个循环的中间时,无论分配的值如何,都会出现索引错误,正如您在代码下方的 output 中看到的那样。
fourNest = [ [[[[[AA, BB, CC, DD]
for AA in range(2)]
for BB in range(3)]
for CC in range(4)]
for DD in range(5)]]
print fourNest #this prints as expected and assignments work manually
for AA in range(2):
print "AA = ", AA
for BB in range(3):
print " BB = ", BB
for CC in range(4):
print " CC = ", CC
for DD in range(5):
fourNest[AA][BB][CC][DD] = 1
print " DD = ", DD," ", fourNest[AA][BB][CC][DD]
AA = 0 BB = 0 CC = 0 DD = 0 1 DD = 1 1 DD = 2 1
Traceback (most recent call last):
File "C:/Python27/forListCreateTest", line 21, in <module>
fourNest[AA][BB][CC][DD] = 1
IndexError: list assignment index out of range
LC 中的循环顺序需要颠倒。 你还有一层额外的括号
fourNest = [[[[[AA, BB, CC, DD]
for DD in range(5)]
for CC in range(4)]
for BB in range(3)]
for AA in range(2)]
>>> fourNest[0][0][0][0]
[[0, 0, 0, 0], [1, 0, 0, 0]]
>>> fourNest[0][0][0]
[[[0, 0, 0, 0], [1, 0, 0, 0]], [[0, 1, 0, 0], [1, 1, 0, 0]], [[0, 2, 0, 0], [1, 2, 0, 0]]]
...
所以最里面的列表(不考虑生成的 4 个数字)有两个元素,下一个外部 3 等等..
你试着像反过来一样使用它......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.