переменной присваивается значение другой переменной. И при изменении исходной, новая не должна меняться
copy() и deepcopy()
ок, какое значение у этой переменной? lst = [1, 2, 3,4]?
Срезом можно через (:)
Душнилово начинается 😋
ну получи свою шеллоу копи
>>> x = [1, 2, [3, 4]] >>> y = x[:] >>> y[2][1] = 5 >>> x [1, 2, [3, 5]] >>> y [1, 2, [3, 5]]
В чем смысл сообщения? Поясни пожалуйста?
в том, что срез твой нихуя не работает, но так как автор не понимает что он хочет, может быть для него этот срез и сработает. И как я уже сказал выше, мойша что-то про присваивание значения напел, но я очень сомневаюсь, что он не закартавил и не зафальшивил.
Так что именно говоришь не работает?
сообщение перечитай
А теперь измени элемент списка [3, 4] и напечатай x и y
Ты намекаешь на то что [:] не копирует а просто линк присваивает айдишнику от X ?
Нет, читай внимательнее то, что писали
Не, там сериализованные данные из запроса. Юзанул deepcopy по совету ниже
Поменяй элемент в списке [3, 4] y[2] это элемент списка [3, 4]?
Странно как то спрашиваешь. 3,4 это элементы y. Я бы так сказал.
ты заменяешь сам список, а не элементы в нем
То есть в процессе присвоения новой переменной значения старой, методом среза [:], накладывает какие то ограничения изменения в будущем? Какая логика то?
типа список - это список ссылок. У тебя копируются не объекты, а создаётся новый список со старыми ссылками. то есть если по ссылке лежит изменяемый объект, ты его изменишь
Жесткий нюанс. p/s нельзя было сразу так ответить?
Советую почитать: https://nedbatchelder.com/text/names.html
Спасибо. Гляну для развития
Недавно проходил видео курс. Как раз там было про варианты копирования. По этому мне стало интересно тут пообщаться. И выяснить подробности.
Тебе сразу так и ответили Просто ты не пытался понять, а ждал пока разжуют
Обсуждают сегодня