概述
Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和C一致,本身就是对表达式的简写,即二元表达式和赋值语句的结合,比如a += b 和a = a + b 就是一致的,比如还有以下的增强赋值语句。

即增强赋值语句适用于任何支持隐式二元表达式的类型,比如“+”的多态:数字的相加和字符串的合并
数字加减
a = 1a = a + 1print(str(a))a += 1print(str(a))
示例结果:
23
字符串合并
S = 'I'S = S + ' like 'print(S)S += 'Python.'print(S)
示例结果:
I likeI like Python.
优点
- 简洁
- 减少一次a的执行,执行速度更快
- 针对可变对象,增强赋值会自动选择执行原处的修改运算,而不是速度更慢的复制。这就引申出我们在可变对象中可能涉及的共享引用问题。
共享引用
当我们想要扩展列表时,比如将一组元素添加到末尾,我们会怎么做?
L = [1, 2, 3]
# 传统“+”法
L = L + [4, 5]
print(L)
# 利用列表方法extend
L.extend([6, 7])
print(L)
示例结果
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7]
示例中第一中“+”

本文介绍了Python中的增强赋值操作,如`+=`,它们与C语言中的用法相似,能简化代码并提高执行速度。对于可变对象,如列表,使用增强赋值在某些情况下可以原地修改,但可能导致共享引用问题。例如,`list += [元素]`等价于`list.extend([元素])`,这种操作速度快但需注意共享引用可能导致的意外修改。在处理共享引用时,需要谨慎操作或先进行对象拷贝。
最低0.47元/天 解锁文章
153

被折叠的 条评论
为什么被折叠?



