Пишу на С++, но сейчас появилась необходимость решить задачу на Python. Столкнулся со следующим странным поведение:
m = [[1], [2]] m = m * 2; id = 0; fl = 1; for i in range(0, 2): for j in range(0, 2): m[id].append(fl); id = id + 1; fl = fl + 1;
Предполагал, что на выходе будет нечто такое:
1 1
2 1
1 2
2 2
Но части исходного массива m изменяются одновременно, и на выходе совсем неожиданный для меня результат:
1, 1, 2
2, 1, 2
1, 1, 2
2, 1, 2
Можете пояснить с чем это связано (как полагаю с адресацией) и как с этим бороться, чтобы получить желаемый результат?
