Cats萌萌
在使用类似grid[i].append(). 因为最初列表中没有任何内容,而您指的是不可用的内容。因此,你的错误。:(您可以改为在每个外部迭代中创建一个子列表,并附0加到内部迭代中的前一个子列表:cols = 10rows = 10grid = []for _ in range(rows): grid.append([]) for _ in range(cols): grid[-1].append(0)print(grid)# [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0], # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],# [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]将整个组合成一行:grid = [[0 for _ in range(cols)] for _ in range(rows)]
HUX布斯
有几个问题:您不会grid在循环之前实例化一个空列表。在尝试附加到这些子列表之前,您必须将子列表附加到外部列表。迭代 a 时range,无需增加计数器。所以这将起作用:rows = 5cols = 5grid = []for i in range(rows): grid.append([]) for j in range(cols): grid[i].append(0)print(grid)[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]