最近学习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变了
添加回答
举报
0/150
提交
取消