51Testing软件测试论坛

标题: Python 表达式 i += x 与 i = i + x 等价吗? [打印本页]

作者: lzjun    时间: 2017-2-5 13:02
标题: Python 表达式 i += x 与 i = i + x 等价吗?
Python 表达式 i += x 与 i = i + x 等价吗?如果你的回答是yes,那么恭喜你正确了50%,为什么说只对了一半呢? 按照我们的一般理解它们俩是等价的,整数操作时两者没什么异同,但是对于列表操作,是不是也一样呢?先看下面两段代码:

代码1

>>> l1 = range(3)
>>> l2 = l1
>>> l2 += [3]
>>> l1
[0, 1, 2, 3]
>>> l2
[0, 1, 2, 3]
代码2

>>> l1 = range(3)
>>> l2 = l1
>>> l2 = l2 + [3]
>>> l1
[0, 1, 2]
>>> l2
[0, 1, 2, 3]
代码1与代码2中的l2的值是一样的,但是l1的值却不一样,说明 i += x 与 i = i + x 是不等价的,那什么情况下等价,什么情况下不等价呢?

扫一扫关注公众号『一个程序员的微站』获取最新文章
作者: Miss_love    时间: 2017-2-7 16:41
+号两边格式需一致。
作者: 梦想家    时间: 2017-2-7 16:53

作者: jingzizx    时间: 2017-2-10 11:15





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2