Что выведет код Junior Типы, изменяемость и сравнение спрашивают часто обновлено

Ссылки на список и +=

Вопрос

Что выведет код? По строке на каждый print.

a = [1, 2]
b = a
b += [3]
c = a
c = c + [4]
print(a)
print(b is a, c is a)

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: [1, 2, 3], True False. b += [3] для списка работает как extend на месте, поэтому изменился общий объект и b по-прежнему тот же список. c = c + [4] создаёт новый список и перепривязывает только c, a не меняется.

Что выведет

[1, 2, 3]
True False

Разбор

b += [3] для списка работает как extend на месте, поэтому изменился общий объект и b по-прежнему тот же список. c = c + [4] создаёт новый список и перепривязывает только c, a не меняется. Итог: [1, 2, 3], затем True False.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме