python中二维数组初始化的问题 [[0]*n]*n和[[0]*n for i in range(n)]的区别
正确初始化:
s = [[0] * n for i in range(n)]
或者:
[[0 for j in range(n)] for i in range(n)]
以上两个皆可。
错误初始化:
s = [[0] * n] * n
原因:
后者是生成[0] * n 的n个引用,也就是说这个数组中的每一行的内存地址是一样的,任何一行的改变都会导致其他行发生相同的改变。
具体可见七月_Lillian的博客