python:序列的增量赋值

简介: +=背后的特殊方法是__iadd__(用于就地加法),若a实现了iadd的方法就会调用这个方法,如果没实现,则a+=b这个表达式的效果就是a = a+b一样:首先计算a+b 得到一个性的对象,然后赋值给a

+=背后的特殊方法是__iadd__(用于就地加法),若a实现了iadd的方法就会调用这个方法,如果没实现,则a+=b这个表达式的效果就是a = a+b一样:首先计算a+b 得到一个性的对象,然后赋值给a

也就是说在这个过程中,变量名会不会被关联到新的对象,

完全取决于这个类型有没有实现__iadd__这个方法

可变序列一般都实现了这个方法,也就是说+=就是就地加法。

而不可序列不支持这个操作

不可变序列

l = (1, 2, 4)
print(id(l))
l = l*2
print(id(l))
l*=2
print(id(l))

可变序列

l = [1, 2, 4]
print(id(l))
l = l*2
print(id(l))
l*=2
print(id(l))

不可变序列

s = (1, 3, 4)
print(id(s))
s *= 2
print(id(s))

可变序列

s = [1, 3, 4]
print(id(s))
s *= 2
print(id(s))

上述代码运行后,则可得出上述总结,id不同则是创建了新的对象

相关文章
|
16天前
|
机器学习/深度学习 调度 Python
SOFTS: 时间序列预测的最新模型以及Python使用示例
这是2024年4月《SOFTS: Efficient Multivariate Time Series Forecasting with Series-Core Fusion》中提出的新模型,采用集中策略来学习不同序列之间的交互,从而在多变量预测任务中获得最先进的性能。
43 4
|
4天前
|
Python
Python赋值运算符
【6月更文挑战第27天】Python赋值运算符。
12 6
|
15天前
|
存储 安全 Java
在Python中,引用和赋值机制是理解变量和数据对象之间关系的关键
【6月更文挑战第16天】Python变量是对象引用,不存储数据,指向内存中的对象。赋值`=`创建引用,不复制对象。`b = a`时,a和b指向同一对象。引用计数管理对象生命周期,垃圾回收在引用数为0时回收对象。理解这些机制对优化内存使用关键。
34 7
|
12天前
|
Python
在Python中,`range()`函数生成一个整数序列,用于循环迭代。
【6月更文挑战第19天】`Python`的`range()`函数生成整数序列,用于迭代。它接受`start`(默认0)、`stop`(不包含,右开)和`step`(默认1)参数。在`for`循环中,`range(5)`会输出0到4。若要包含结束值,需将`stop`设为`end+1`,如`range(1, 6)`将输出1到5。
27 1
|
16天前
|
存储 索引 Python
【Python列表解锁】:掌握序列精髓,驾驭动态数据集合
【Python列表解锁】:掌握序列精髓,驾驭动态数据集合
|
26天前
|
存储 数据安全/隐私保护 索引
10.Python【序列】- 字符串(上)
10.Python【序列】- 字符串
36 3
|
3天前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
|
26天前
|
机器学习/深度学习 自然语言处理 TensorFlow
|
5天前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
10 0
|
26天前
|
数据库 索引 Python
10.Python【序列】- 字符串(下)
10.Python【序列】- 字符串
22 0