【问题标题】:Python + operator used with list type [duplicate]与列表类型一起使用的 Python + 运算符 [重复]
【发布时间】:2019-03-22 11:18:58
【问题描述】:

假设我的列表 a 是 [1,2,3],它指向地址 53367992

>>> a = [1,2,3]
>>> id(a)
53367992

现在,当我在这个列表中添加[9]时,我明白地址的变化,现在l指向53368552

>>> a = a + [9]
>>> a
[1, 2, 3, 9]
>>> id(a)
53368552

在下面这种情况下,我不明白为什么即使在将 [4] 添加到 a 之后,a 仍指向相同的地址

>>> a = [1,2,3]
>>> id(a)
53361720
>>> a += [9]
>>> a
[1, 2, 3, 9]
>>> id(a)
53361720

请你们解释一下 a = a +[9] 之间的区别是什么? 以及列表中的 += [9](这怎么会充当附加)操作?

【问题讨论】:

    标签: python python-3.x list


    【解决方案1】:

    列表是可变的。像.append()(或+=/__iadd__)之类的方法会(就地)更改列表本身并且不创建新实例。

    另一方面,+ (__add__) 将返回一个新实例。

    【讨论】:

    • 谢谢@hiro 的回答,不知道+= 语句与+ 语句不同
    猜你喜欢
    • 1970-01-01
    • 2014-08-06
    • 2017-11-23
    • 1970-01-01
    • 2013-05-27
    • 2014-03-03
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多