6 дней назад
Почему изменение копии неожиданно меняет оригинал?
Попробуйте угадать, что выведет этот код. numbers = [[1, 2], [3, 4]] copy = numbers.copy() copy[0].append(99) print(numbers) Если слово «копия» понимать буквально, то ответ кажется очевидным. Мы изменили копию. Значит, оригинал должен остаться прежним. Многие ожидают увидеть: [[1, 2], [3, 4]] Но Python выводит совсем другое: [[1, 2, 99], [3, 4]] Получается странная ситуация. Мы изменяли копию, а изменился оригинал. Неужели метод copy() работает неправильно? На самом деле метод работает именно так, как задумывался. Проблема в другом. Мы привыкли думать о копировании как о создании полностью независимого объекта...