【问题标题】:Insert element in list python [duplicate]在列表python中插入元素[重复]
【发布时间】:2020-07-14 07:03:51
【问题描述】:

为什么是这个代码:

result_list = [[]]*14
result_list[3].append('sdfda')
print(result_list)

是输出:

[['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda'], ['sdfda']]

但我希望:

[[], [], [], ['sdfda'], [], [], [], [], [], [], [], [], [], []]

我想按索引插入元素...但是这个代码示例将元素插入到列表的所有列表中

【问题讨论】:

  • result_list = [[] for i in range(14)]
  • 简而言之,在result_list = [[]]*14 行中,您为同一个空列表创建了14 个“引用”,这意味着当您将append 附加到一个时,您将追加到所有这些。
  • 发送请求。

标签: python arrays list multidimensional-array append


【解决方案1】:

当你写 [x]*3 时,你基本上得到了列表 [x, x, x]。也就是说,一个包含 3 个对相同 x 的引用的列表。然后,当您修改此单个 x 时,它可以通过对它的所有三个引用可见。

试试这个:

result_list = [[]]*14
result_list[3]=['sdfda']
print(result_list)

【讨论】:

    猜你喜欢
    • 2012-10-12
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    相关资源
    最近更新 更多