![](/img/trans.png)
[英]Python IndexError: list index out of range - 2d list iteration
[英]IndexError: list index out of range for 2D list of objects
这是我的代码:
class Grid:
def __init__(self):
self.matrix = [[Cell(i, j)] for j in range(5) for i in range(6)]
# Extra stuff
def enter_letter(self, letter):
if self.current_col == 5:
return
print(self.matrix[0][1].get_letter()) # Test, this is where it goes wrong.
# It also goes wrong when I call set_letter() a 2nd time as it goes to matrix[0][1] in the line below:
self.matrix[self.current_row][self.current_col].set_letter(letter)
self.current_col += 1
# Extra stuff
class Cell:
def __init__(self, row, col):
self.row = row
self.col = col
# Extra stuff
问题是,每次我尝试在self.matrix[0][1]
上访问或调用set_letter()
时,它都会给我 IndexError: list index out of range。 当我尝试访问 matrix[4][0] 时完全没问题,但是 y 值高于 0 的任何东西都会引发索引错误。 我尝试了谷歌搜索,很多建议是将.append()
调用到每个列表以使其成为 2D 列表(不确定我是否解释正确)所以我尝试了但我发现很难应用于对象列表。 ..
如果我能得到任何建议,那就太好了:)
正如 TheLazyScripter 所建议的,这是我为使其工作而更改的代码:
class Grid:
def __init__(self):
self.matrix = [[Cell(i, j) for i in range(6)] for j in range(5)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.