奇怪的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 时的奇怪行为
将 UIButton 添加到 UICollectionViewCell 时的奇怪行为