python - Python 列表中 x += x 和 x = x + x 的区别

标签 python

代码优先:

# CASE 01
def test1(x):
    x += x
    print x

l = [100]
test1(l)
print l

CASE01 输出:

[100, 100]
[100, 100]

没关系!因为 l(列表)是可变的。

然后,

# CASE 02
def test2(x):
    x = x + x
    print x

l = [100]
test2(l)
print l

CASE02 输出:

[100, 100]
[100]

虽然区别还是可以理解的。 在 x = x + x 方式中,最左边的 x 已被创建/分配为新的。

但是为什么?

如果x += xx = x + x在定义上是一样的,但是为什么会有两个不同的结果呢? 两种方式的细节如何?

谢谢!

最佳答案

x += x 在后台调用 append,这会改变原始变量

x = x + x 正在为 test2 创建一个本地新变量并设置该值,这不会影响原始 x

关于python - Python 列表中 x += x 和 x = x + x 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511335/

相关文章:

python - Django dev server request.META 有我所有的环境变量

python - 复杂 Bokeh 图中 CheckboxButtonGroup 和 Legend 之间的交互

Python 数据框分组

python - AccessToken匹配查询不存在

python - 有没有办法在 Gtk 窗口/小部件中停用鼠标光标?

python - 为什么自定义平均文件管理器(3x3)的输出与opencv的平均过滤器不同?

python - 在python中将另一个项目作为模块导入

python - 如何绘制一棵以 id 作为节点标签的树

python - 如何将长字符串的定义拆分为多行?

Python IDLE 如何从编辑器进入 shell