0

我是 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 列表。为什么会发生这种情况,我该如何解决。我可以低效地解决这个问题,但我不想这样做。

4

1 回答 1

1

该声明

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

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

于 2013-09-30T00:36:10.043 回答