python中list和list_python中<list>和<list>[:]的区别

word = ['123', 'abc', 'abcdefg']print(id(word))print(id(word[0]))#print(word)#for w in word:for w in word[:]: print(id(w)) if len(w) > 6: word.insert(0, 'abcdefg')# word[:].insert(0, 'abcdefg')print(id(word))print(id(word[0]))print(id(word[1]))print(id(word[:]))#print(word)

运行结果为:220053998592822005401871442200540187144220053060699222005401872002200539985928220054018720022005401871442200539986184

??????会发现 word[:] 其实是 word 的深拷贝,即 word[:] 和 word 是独立的两个列表变量,对 word 的增删改不会影响 word[:],对 word[:] 的增删改也不会影响到 word。

python 中,有这样一个情况:a = [1, 2, 3]b1 = ab2 = a[:]print(a)print(id(a))print(b1)print(id(b1))print(b2)print(id(b2))"""运行结果:[1, 2, 3]2716794825544[1, 2, 3]2716794825544[1, 2, 3]2716794825608""""""b1是a的浅拷贝,即b1和a一样b2是a的深拷贝,即b2和a不一样b1和b2的内容和a都是一样的,但是b1的内存地址和a一样,b2的内存地址和a是不一样的此处的这个就像按引用传递(b1)和按值传递(b2)"""联络方式:

QQ:1583801169

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值