【发布时间】:2018-05-19 17:19:14
【问题描述】:
我从 python 得到这个错误:
TypeError: list indices must be integers or slices, not list
使用此代码时:
a1, a2, a3, a4, a5, a6, a7, a8, b1, b2, b3, b4, b5, b6, b7, b8 = "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8", "c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8", "e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8", "f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8", "h1", "h2", "h3", "h4", "h5", "h6", "h7", "h8"
bord = [[a1, a2, a3, a4, a5, a6, a7, a8], [b1, b2, b3, b4, b5, b6, b7, b8], [c1, c2, c3, c4, c5, c6, c7, c8], [d1, d2, d3, d4, d5, d6, d7, d8], [e1, e2, e3, e4, e5, e6, e7, e8], [f1, f2, f3, f4, f5, f6, f7, f8], [g1, g2, g3, g4, g5, g6, g7, g8], [h1, h2, h3, h4, h5, h6, h7, h8]]
for y in bord:
for x in bord[y]:
print(bord[y][x])
所以我创建了一个 8 x 8 棋盘(2D 列表),其位置名称类似于国际象棋。 我想为棋盘的每个方格执行一段代码。
第一个 for 循环将一次选择 1 行(因此 y 作为 y 轴) 然后第二个 for 循环将一次选择 1 列(因此 x 作为 x 轴)
为了测试,我刚刚打印了 2D 列表的位置:
print(bord[y][x])
【问题讨论】:
-
您似乎明白第一个循环遍历子列表:“第一个 for 循环将一次选择 1 行”,那么您认为
bord[y]在@ 时会做什么987654325@ 是子列表?你想要像for row in bord: for x in row: print(x)这样的东西。注意,这不是二维数组,这是一个列表。 -
或者,使用你的变量名:
for y in bord: for x in y: print(x) -
@juanpa.arrivillaga 谢谢先生!我对python很陌生,但你帮了我很多:)
标签: python list for-loop multidimensional-array error-handling