Python 中 a += b 不总是等于 a = a + b


如果两个变量的数据类型相同且不是迭代器(例如列表和字典等),则表达式 a += b 与 a = a + b 的结果相同。但是,当涉及迭代器时,我们不能总是期望相同的结果。以下是一种这样的场景。

a = a + b 的情况

在这里我们可以看到,当我们将表达式应用于列表和字符串时,期望它们合并,我们得到一个错误。

示例

x ='Hello '
z_list = [1,2,3]
z_list = z_list + x
print(z_list)

输出

运行以上代码得到以下结果:

Traceback (most recent call last):
   File "C:\Users\Pradeep\AppData\Roaming\JetBrains\PyCharmCE2020.3\scratches\scratch.py", line 11, in
      z_list = z_list + x
TypeError: can only concatenate list (not "str") to list

a += b 的情况

但是,当我们应用表达式 a += b 时,我们看到字符串隐式地转换为一系列元素以成为列表的一部分。

示例

在线演示

z_list = [1,2,3]
x ='Hello'
z_list += x
print(z_list)

输出

运行以上代码得到以下结果:

[1, 2, 3, 'H', 'e', 'l', 'l', 'o']

更新于:2021年1月25日

浏览量:105

开启您的职业生涯

完成课程获得认证

开始学习
广告