Python变量赋值

python变量赋值问题:

>>> a = [1,2,3,4]
>>> b = a
>>> c = []
>>> c = a
>>> d = a[:]
>>> a,b,c,d
([1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4])
>>> b[0] = 'b'
>>> a,b,c,d
([b,2,3,4],[b,2,3,4],[b,2,3,4],[1,2,3,4])
>>> c[0] = 'c'
>>>a,b,c,d
([c,2,3,4],[c,2,3,4],[c,2,3,4],[1,2,3,4])
>>> d[0] = 'd'
>>>a,b,c,d
([c,2,3,4],[c,2,3,4],[c,2,3,4],[d,2,3,4])
>>> id(a),id(b),id(c),id(d)
(216939269000, 216939269000, 216939269000, 216939268552)

a、b、c的id值是同一个,所以修改其中任何一个的值都会改变其他的值;d的id不同,改变不会影响其他的值。
除了以上方法,还有copy()函数也可以对变量赋值并在修改新列表的时候不会改变原列表的值:
copy模块里的copy()函数:

>>> import copy
>>> a=[1,2,3]
>>> e=copy.copy(a)
>>> a,e
([1, 2, 3], [1, 2, 3])
>>> e[0]='e'
>>> a,e
([1, 2, 3], ['e', 2, 3])
>>> id(a),id(e)
(216939269000, 216939268552)
>>>

list自带的copy()方法:

>>> list = [1,2,3,4,5]
>>> copy_list = list.copy();
>>> list,copy_list
([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
>>> copy_list=copy_list+['a','b','c']
>>> list,copy_list
([1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 'a', 'b', 'c'])
>>> id(list),id(copy_list)
(216939906760, 216939269000)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值