【问题标题】:Python Append vs list+listPython追加与列表+列表
【发布时间】:2016-04-06 08:18:12
【问题描述】:

我阅读了Python list + list vs. list.append(),这是一个类似的问题,但我的问题更多与下面的代码有关

a = [[]] * 4
b = [[]] * 4
a[3] = a[3] + [1]
b[3].append(1)
print a, b

这给出了:

[[],[],[],[1]] [[1],[1],[1],[1]]

为什么这两个会有所不同?我从来没有遇到过这样的例子,这两种方法有不同的输出......

谢谢

【问题讨论】:

标签: python append


【解决方案1】:

a[3] = a[3] + [1] 没有修改 a[3]。相反,它在那里放置了一个新项目。 a[3] + [1] 创建一个与a[3] 类似的列表,只是最后多了一个。然后,a[3] = ... 将索引 3 处的 a 设置为该新列表。

b[3].append(1) 访问b[3] 并使用其.append() 方法。 .append() 方法适用于列表本身,并在列表末尾放置一个。由于[[]] * 4 创建了一个包含另一个列表的四个副本的列表,.append() 方法揭示了它在b 的所有项目中的变化。

【讨论】:

    猜你喜欢
    • 2012-08-30
    • 2023-03-09
    • 2014-11-10
    • 2021-08-22
    • 2019-04-29
    • 2013-11-08
    • 2020-08-08
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多