繁体   English   中英

IndexError:2D 对象列表的列表索引超出范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM