为了账号安全,请及时绑定邮箱和手机立即绑定

python 可变对象的疑惑

python 可变对象的疑惑

沧海一幻觉 2018-11-19 16:40:13
最近学习Python的时候遇到了一点疑惑, 一时不知道该怎么理解, 如下:使用版本为python3.6假设有下面三段代码:l = [1] print(id(l)) l.append(2) print(id(l))上面这段代码可以发现地址不变l = [1] print(id(l)) l += [2] print(id(l))上面这段代码可以发现地址仍旧不变l = [1] print(id(l)) l = l + [2] print(id(l))上面这段代码发现地址变了本人的理解仅限于知道列表是可变对象, 但是上面三段代码却不知道该如何解释其中的原理, 感觉还是有一些地方没有理解清楚.望能有前辈解答, 不胜感激
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

三种方式内部原理是不同的,+= 和 append都是原地操作,即直接向列表中加元素,而列表是引用类型,只是一个地址,所以他的id()一样。最后一种方式两个列表组合成为一个新的列表返回,新列表肯定指向不同的地址,所以id变了

查看完整回答
反对 回复 2018-11-19
  • 1 回答
  • 0 关注
  • 674 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信