Исходный список: a=[]
Нужно получить:a=[,,,]
т.е. последовательно менять один из элементов исходного списка на ‘X’ и добавлять каждый полученный список в исходный.
# coding: utf-8 a=[['a','b','c','d']] b=['a','b','c','d'] for i in range(0,len(b)): c=b c[i]='X' a.append(c) print(a) print(b)
[, , , , ]
Он показывает, что интерпретатор даже список b поменял который вне пределов цикла, потому что видимо с=b, и все четыре новых списка он тоже приравнял к последнему с неправильному, т.к. он постепенно менял и b.
На числовых значениях такого не происходит. Т.е. он не меняет значение b, если я к нему приравняю с, а потом с изменю, b не поменяется.
Вопрос: как мне обойти эту особенность интерпретатора, если он меняет даже то, что вроде менять не должен?