python的增强赋值语句是从C语言中借鉴来的,它有输入更少,执行更快,有优化技术自行选择等优点,建议在程序中多加使用。
常用的增强赋值语句有:
- x += y
- x -= y
- x &= y
- x |= y
- x *= y
- x /= y
等等…
其中需要注意的就是,增强赋值中自带的优化选择功能带来的问题
以列表为例,我们知道要将元素添加到列表末尾有两种方式:
- 合并运算
# 合并运算典型用法有:
L = [1, 2,]
L = L + [3, 4, 5]
print(L)
# 运行结果为
[1, 2, 3, 4, 5]
这种运行在底层是创建一个新的对象再将两部分输入,运行速度更慢
- 在原处修改列表
L = [1, 2,]
L.extend([3, 4, 5])
print(L)
# 运行结果为
[1, 2, 3, 4, 5]
这种方式是直接在列表末尾添加,速度较快。而增强赋值运算会默认选择速度较快的方式。
所以在某些情况下需要注意 x = x + y 与 x += y 是不同的:
x = x + y 示例:
L = [1, 2]
M = L
L = L + [3, 4]
print(L)
print(M)
# 运行结果
[1,2, 3, 4]
[1, 2]
x += y 示例:
L = [1, 2]
M = L
L += [3, 4]
print(L)
print(M)
# 运行结果
[1,2, 3, 4]
[1,2, 3, 4]