Пока Loop Step не работает с вложенным массивом? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь что-то изменить в каждом втором элементе моего массива.Тогда в этом элементе я хочу изменить только 5-й элемент (это массив массивов).Я хочу сделать это, просто сделав шаг 2 в цикле while.Поэтому я добавил i += 2.

Теперь это странно: когда я помещаю только в: PaylikeTableWithFee[i] = 'hello' Тогда это работает, и только каждый второй массив изменяется и устанавливается на 'привет'.

Однако, когда я делаю так: PaylikeTableWithFee[i][5] = 'hello' Затем каждый массив модифицируется, хотя цикл имеет шаг 2.

i = 1
while i < len(PaylikeTableWithFee):

    PaylikeTableWithFee[i][5] = 'hello'

    i += 2

Обычно редактируется только 5-й элемент каждого 2-го массива внутри основного массива.

1 Ответ

2 голосов
/ 02 мая 2019

Скорее всего, проблема в том, как вы создали массив массивов. Я подозреваю, что вы написали это с чем-то вроде 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].

...