【问题标题】:appending to a nested list in python [duplicate]附加到python中的嵌套列表[重复]
【发布时间】:2012-11-25 15:15:09
【问题描述】:

可能重复:
“Least Astonishment” in Python: The Mutable Default Argument
Python - Using the Multiply Operator to Create Copies of Objects in Lists

当我追加到另一个列表中的列表时,Python 的行为出乎意料。这是一个例子:

>>> _list = [[]] * 7
>>> _list
[[], [], [], [], [], [], []]
>>> _list[0].append("value")

我的期望:

>>> _list
[['value'], [], [], [], [], [], []]

我得到了什么:

>>> _list
[['value'], ['value'], ['value'], ['value'], ['value'], ['value'], ['value']]

这是为什么?我该如何绕过它?

【问题讨论】:

标签: python list nested append


【解决方案1】:

您的问题是您的列表不包含七个独立的列表,而是 same 列表七次。

要创建列表列表,最好使用列表推导:

_list = [[] for _ in xrange(7)]

这将产生一个包含七个不同列表的列表。

【讨论】:

  • 确实有道理,谢谢
猜你喜欢
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-17
  • 1970-01-01
相关资源
最近更新 更多