奇怪的python列出了添加时的行为[重复]

Posted

技术标签:

【中文标题】奇怪的python列出了添加时的行为[重复]【英文标题】:strange python lists behaviour while addition [duplicate] 【发布时间】:2014-01-09 13:36:46 【问题描述】:

我尝试使用 python 列表进行跟踪

a = [1,2,3]
id(a)
3072380812L
a += [1]
print id(a)
3072380812L  # Same id, which means original list is modified
a = a + [1]
print id(a)
146238764    # Different id, which means new list is allocated and assigned to a

为什么 python 列表的“var += value”和“var = var + value”之间有这种区别?

【问题讨论】:

另见Different behaviour for list.__iadd__ and list.__add__ answer here 【参考方案1】:

+= 修改(如果可变)...如您所见,= 也如您所见分配...

这两个运算符在类中都是可重写的,并且它们的行为也可以根据开发人员的心血来潮进行更改...如果您愿意,可以使用 = 进行求和...

【讨论】:

我的意思是为什么会有这种差异? var += 1 不是在所有语言中都被视为 var = var + 1 吗? 没有人修改,其他人分配...与 int 相同,因为它们是不可变的 "在所有语言中 var += 1 不都被视为 var = var + 1 吗?" Python 是一种语言,它不会那样对待+=。所以,显然,不......

以上是关于奇怪的python列出了添加时的行为[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将彩色 UIImageView 添加到 UITableViewCell 时的奇怪行为

在 Python 中为 True 定义值时的奇怪行为

从 cython c 调用 python 函数时的奇怪行为

将 UIButton 添加到 UICollectionViewCell 时的奇怪行为

Python & Pandas:当 Pandas 将直方图绘制到特定轴时的奇怪行为

获取未保存数据时的奇怪核心数据行为