【问题标题】:Python append to list of list [duplicate]Python追加到列表列表[重复]
【发布时间】:2020-08-08 20:55:22
【问题描述】:

我有一个包含单词列表的列表。

例子:

[['A','B','C'],['D'],['E']]

为了实现这一点,我创建了一个大小为 4 的空列表。

list1=[list()] *4

然后尝试一个一个地追加元素。

list1[0].append('A')
list1[0].append('B')
list1[0].append('C')
list1[1].append('D')
list1[2].append('E')

输出:

[['A', 'B', 'C', 'D', 'E'], ['A', 'B', 'C', 'D', 'E'], ['A', 'B', 'C', 'D', 'E'], ['A', 'B', 'C', 'D', 'E']]

预期是:

[['A','B','C'],['D'],['E']]

【问题讨论】:

标签: python python-3.x


【解决方案1】:

你的问题就在这里:

list1=[list()] *4

您正在制作同一个列表对象的副本。您基本上每次都将元素添加到同一个列表中。

修复:

list1=[[] for i in range(3)]


list1[0].append('A')
list1[0].append('B')
list1[0].append('C')
list1[1].append('D')
list1[2].append('E')

这给出了您的预期结果。

【讨论】:

    【解决方案2】:

    您使用的初始化方法创建了一个包含四个指针的列表,这些指针都指向同一个列表。在这种情况下,您不应使用星号运算符。

    【讨论】:

      猜你喜欢
      • 2019-04-06
      • 1970-01-01
      • 2015-03-22
      • 2023-03-11
      • 1970-01-01
      • 2020-09-24
      • 2012-02-01
      • 1970-01-01
      相关资源
      最近更新 更多