python中list[0啥意思_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)

运行结果为:

2200539985928

2200540187144

2200540187144

2200530606992

2200540187200

2200539985928

2200540187200

2200540187144

2200539986184

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

python 中,有这样一个情况:

a = [1, 2, 3]

b1 = a

b2 = 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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值