python 中的二维列表

为什么这段代码:


grid = [[" "] * 10] * 5


for c in range(10):

  grid[0][c] = '#'


for r in grid:

  print(r)

输出这个?


['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']

['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']

['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']

['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']

['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']

我将第一个索引固定为 0。其他子列表不应更改。


慕的地8271018
浏览 105回答 1
1回答

德玛西亚99

您需要创建新值而不是再次引用它们!grid = [[" " for _ in range(10)] for __ in range(5)] for c in range(10):  grid[0][c] = '#'for r in grid:  print(r)['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'][' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '][' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '][' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '][' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python