Как заметил @chepner, это происходит потому, что lCopy
не является псевдонимом l
.Вы можете проверить это самостоятельно, используя несколько строк, как показано ниже.
l = [1,2,3]
lCopy = l
lCopy.append(4)
print(l) #Will give [1,2,3,4]
Чтобы лучше понять, что происходит, вы можете создать еще один объект списка u
u = [4,5,6]
lCopy = u
print(lCopy) #Will give [4,5,6]
print(l) #Will still give [1,2,3,4]
Когда вы сделали lCopy = u
, вы просто изменили ссылку, содержащуюся в lCopy
, на u
вместо l
.
В результате lCopy
не является копией l
.Чтобы иметь возможность изменять lCopy
без побочных эффектов до l
, вы можете использовать глубокую копию, как упомянуто @ DaichiJameson.