看啥推荐读物
专栏名称: Python小屋
清华出版社《Python程序设计》系列教材作者董付国的Python小屋。介绍Python基础语法知识、标准库、扩展库知识,探讨Python在各领域的应用。
今天看啥  ›  专栏  ›  Python小屋

当Python列表遇上复合赋值运算符+=

Python小屋  · 公众号  · Python  · 2017-10-19 15:33
首先感谢集美大学蔡莉白老师发现这个问题并与我沟通交流,我在蔡老师提供的代码基础上又稍作扩展和补充。对于列表x而言,x += y和x = x+y并不等价,在一定程度上,+=类似于append(),但是又不完全一样。正常来讲,作用于列表时,运算符+=的用法是这样的:>>> x = []>>> x += [1, 2, 3]>>> x[1, 2, 3]列表与列表相加,从效果上来看,似乎与x = x + [1, 2, 3]是一样的,然而,内部的区别的还是很大的。例如:>>> x = []>>> id(x)48248392>>> x += [3]>>> id(x)48248392>>> x = x + [4]>>> x[3, 4]>>> id(x)49375176这段代码说明的是,+=属于原地操作,不会修改列表首地址,类似于列表append()方法,而... = ...+...这样的写法是创新一个新对象,会修改列表首地址。既然+=类似于append()方法,那是不是用法也一样呢? ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照