Выбор ответа Middle Типы, изменяемость и сравнение спрашивают часто обновлено
Поверхностная копия списка
Вопрос
Что выведет print(a)?
a = [[1, 2], [3]]
b = a.copy()
b[0].append(9)
b.append([4])
print(a)
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: [[1, 2, 9], [3]]. a.copy() создаёт новый внешний список, поэтому b.append([4]) на a не влияет.
Варианты ответа
[[1, 2], [3]][[1, 2, 9], [3], [4]][[1, 2], [3], [4]][[1, 2, 9], [3]]правильный ответ
Разбор
a.copy() создаёт новый внешний список, поэтому b.append([4]) на a не влияет. Но внутренние списки общие, и b[0].append(9) меняет тот же объект, что лежит в a[0]. Итог [[1, 2, 9], [3]]. Независимость на всех уровнях даёт только copy.deepcopy.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.