循环步骤不适用于嵌套数组吗?

时间:2019-05-02 13:33:20

标签: python arrays loops while-loop

我试图在数组的第二个元素中更改某些内容。然后在该元素中,我只想修改第5个元素(它是一个数组数组)。我想通过在while循环中将步长设为2来做到这一点。因此,我添加了i += 2

现在很奇怪: 当我只输入: PaylikeTableWithFee[i] = 'hello' 然后它起作用了,并且仅修改了第二个数组并将其设置为“ hello”。

但是,当我这样做时: PaylikeTableWithFee[i][5] = 'hello' 然后,尽管循环的步长为2,每个数组都将被修改。

i = 1
while i < len(PaylikeTableWithFee):

    PaylikeTableWithFee[i][5] = 'hello'

    i += 2

通常,仅应编辑主数组中每个第二个数组的第5个元素。

1 个答案:

答案 0 :(得分:2)

问题可能出在创建数组数组的方式上。我怀疑您使用PaylikeTableWithFee = [[0,1,2,3,4,5]] * n之类的东西来创建它。这样只会创建一个内部数组PaylikeTableWithFee,然后是相同引用的数组n次。因此,使用PaylikeTableWithFee[0][5] = 'hello'会更改(看起来像)每个内部数组。

确保PaylikeTableWithFee不同的内部数组,例如PaylikeTableWithFee = [[0,1,2,3,4,5] for _ in n]