【问题标题】:strange python lists behaviour while addition [duplicate]奇怪的python列出了添加时的行为[重复]
【发布时间】: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”之间有这种区别?

【问题讨论】:

标签: python


【解决方案1】:

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

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

【讨论】:

  • 我的意思是为什么会有这种差异? var += 1 不是在所有语言中都被视为 var = var + 1 吗?
  • 没有人修改,其他人分配...与 int 相同,因为它们是不可变的
  • "在所有语言中 var += 1 不都被视为 var = var + 1 吗?" Python 是一种语言,它不会那样对待+=。所以,显然,不......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
  • 2023-03-03
相关资源
最近更新 更多