【问题标题】:Appending to element in array [duplicate]附加到数组中的元素[重复]
【发布时间】:2013-10-05 18:23:23
【问题描述】:

我是 python 新手,我在语言的某些方面遇到了问题。现在我正在尝试创建一个可以保存某些值的 3 维表。

表[x][y][z]

X 和 Y 都被初始化为具有相同数量的元素,而 z 被初始化为像这样的空列表

table = [[[]]*length]*length

所以长度为 3 的表格看起来像-

[[[],[],[]] , [[],[],[]] , [[],[],[]]]

在 x,y 的某些值下,我希望能够像这样附加一个单数 z 列表

table[0][2].append('S')

会使表格看起来像

[[[],[],['S']] , [[],[],[]] , [[],[],[]]]

但它是这样出来的

[[['S'],['S'],['S']] , [['S'],['S'],['S']] , [['S'] ,['S'],['S']]]

这样每个 z 列表都会被附加。为什么会发生这种情况,我该如何解决。我可以低效地解决这个问题,但我不想这样做。

【问题讨论】:

标签: python list 3d append


【解决方案1】:

声明

table = [[[]]*length]*length

只是一遍又一遍地为您提供对相同 2 个最内层列表的引用。

【讨论】:

  • 抱歉,我对 python 术语非常不熟悉。您是说 x 和 y 的每个值都使用相同的最内层列表 [] 吗?如果是这样,您对我将如何实施不同的最内层列表有什么建议吗?内部循环为 table[x][y] = []? 的 for 循环
  • 再次感谢!
猜你喜欢
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 2019-08-13
  • 1970-01-01
  • 2021-07-04
  • 1970-01-01
  • 2020-11-01
  • 2012-03-05
相关资源
最近更新 更多