grid = [[0,]*5]*3
for i in range(3):
for j in range(5):
if (i+j+2)%2 ==1:
grid[i][j] = 1
print grid
结果成了下面这个样子,请教为何....
[[1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1]]
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个是因为列表在python中是引用类型,具体可以参考 http://www.cnblogs.com/btchenguang/archive/2012/01/30/2332479.html
代码来说话
你可以理解每行都是对原
arr = [0,1,2,3]
的引用。任意改变任意列上的值,那一列都会改变,因为他们都是同一个引用