violin8629384 发表于 2014-09-03 14:35

python二维数组赋值问题

s = [*3]*2
i = 0
while i < 2:
    s = i
    print s
    i += 1
print s求问:
我想建个二维数组,不明白为什么这段代码计算出来的二维数组第一列全是1,难道不应该是0,1吗?

q1208c 发表于 2014-09-03 15:06

你能画出你想的结果 和 你得到的结果不?

我没太看明白你的意思.

violin8629384 发表于 2014-09-03 15:09

回复 2# q1208c
我就是建立一个2行3列的二维数组
然后对第一列进行赋值
比如a = 0
      a = 1
但是现在得到的是a = 1
                     a = 1
不知道是怎么回事?


   

huangxiaohen 发表于 2014-09-03 15:29

这是因为你初始化的问题,因为你是用s = [*3]*2初始化数组的,他表示的是指向这个列表的引用,所以当你修改一个值的时候,整个列表都会修改。
如果你初始化的时候是s=[,] 那么你上面的操作就会按你的想法显示.

q1208c 发表于 2014-09-03 15:31

http://www.cnblogs.com/btchenguang/archive/2012/01/30/2332479.html

violin8629384 发表于 2014-09-03 15:50

谢谢,懂了~回复 4# huangxiaohen


   

violin8629384 发表于 2014-09-03 15:50

回复 5# q1208c
讲的很详细~
谢谢啦!


   

q1208c 发表于 2014-09-03 15:52

回复 7# violin8629384

:em06:可不是我讲的. 我只是找到了它.
   
页: [1]
查看完整版本: python二维数组赋值问题