我试图在数组的第二个元素中更改某些内容。然后在该元素中,我只想修改第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个元素。
答案 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]
。