为什么这段代码:grid = [[" "] * 10] * 5for c in range(10): grid[0][c] = '#'for r in grid: print(r)输出这个?['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']我将第一个索引固定为 0。其他子列表不应更改。
1 回答
![?](http://img1.sycdn.imooc.com/5458453d0001cd0102200220-100-100.jpg)
德玛西亚99
TA贡献1770条经验 获得超3个赞
您需要创建新值而不是再次引用它们!
grid = [[" " for _ in range(10)] for __ in range(5)]
for c in range(10):
grid[0][c] = '#'
for r in grid:
print(r)
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
[' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
添加回答
举报
0/150
提交
取消