首页 > 解决方案 > 虽然循环步骤不适用于嵌套数组?

问题描述

我正在尝试更改数组的每个第二个元素中的某些内容。在那个元素中,我只想修改第 5 个元素(它是一个数组数组)。我想通过在我的 while 循环中执行 2 步来做到这一点。因此我添加了i += 2.

现在很奇怪:当我只输入: PaylikeTableWithFee[i] = 'hello' 然后它工作并且只有每隔一个数组被修改并设置为“你好”。

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

i = 1
while i < len(PaylikeTableWithFee):

    PaylikeTableWithFee[i][5] = 'hello'

    i += 2

通常只应编辑主数组中每 2 个数组的第 5 个元素。

标签: pythonarraysloopswhile-loop

解决方案


问题可能在于您如何创建数组。我怀疑你用类似的东西装箱了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].


推荐阅读