python二维数组赋值问题
s = [*3]*2i = 0
while i < 2:
s = i
print s
i += 1
print s求问:
我想建个二维数组,不明白为什么这段代码计算出来的二维数组第一列全是1,难道不应该是0,1吗? 你能画出你想的结果 和 你得到的结果不?
我没太看明白你的意思. 回复 2# q1208c
我就是建立一个2行3列的二维数组
然后对第一列进行赋值
比如a = 0
a = 1
但是现在得到的是a = 1
a = 1
不知道是怎么回事?
这是因为你初始化的问题,因为你是用s = [*3]*2初始化数组的,他表示的是指向这个列表的引用,所以当你修改一个值的时候,整个列表都会修改。
如果你初始化的时候是s=[,] 那么你上面的操作就会按你的想法显示. http://www.cnblogs.com/btchenguang/archive/2012/01/30/2332479.html 谢谢,懂了~回复 4# huangxiaohen
回复 5# q1208c
讲的很详细~
谢谢啦!
回复 7# violin8629384
:em06:可不是我讲的. 我只是找到了它.
页:
[1]