python中的赋值问题

a=[1,2,3,4]
b=a
a[0]=10
print(a,b)
输出:
[10, 2, 3, 4] [10, 2, 3, 4]
b不是应该输出【1,2,3,4】吗?
b会随着a改变?

b=a #b里是没有东西的,只是一个指向a的地址。
对b取值/修改,实质上是对a取值/修改。

如果要结果是1234的话,就需要复制a了。
b=a[:] #b是a的副本
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-01
楼上的回答很正确.
再说下
a=1
b=1
a=2
这个时候为什么b没有跟随a=2?
因为这个时候a已经指向了新的地址,b指向着a原来的地址.
第2个回答  2015-11-01
是啊
b=a这句相当于把b指向a的地址,a变了也就是b变了追问

如果只想把a的值赋给b应该怎么操作

追答

http://www.cnblogs.com/mguo/archive/2013/02/25/2931894.html

相似回答