Простой код Python о двойном цикле
Я тестировал следующий код Python на Spyder IDE. Думая, что это выведет 2d массивq
по мере увеличения числа от 0,31 доq[0][0]
вq[3][7]
, Но на самом деле он возвращает q как:
[[24, 25, 26, 27, 28, 29, 30, 31], [24, 25, 26, 27, 28, 29, 30, 31], [24, 25, 26, 27, 28, 29, 30, 31], [24, 25, 26, 27, 28, 29, 30, 31]].
Код:
q=[[0]*8]*4
for i in range(4):
for j in range(8):
q[i][j] = 8*i+j
print q
Любая идея о том, чтоздесь происходит? Я отлаживал шаг за шагом. Он показывает, что обновления каждой строки будут синхронизироваться со всеми другими строками, что сильно отличается от моего опыта работы с другими языками программирования.