Пусть выполнено a = [1, 2] и b = [1, 2]. Какие значения дадут выражения a == b и a is b?

Aa == b это False, a is b это False: содержимое отличается, объекты разные
Ba == b это False, a is b это True: интерпретатор переиспользует один объект
Ca == b это True, a is b это False: содержимое одинаковое, объекты разные
Da == b это True, a is b это True: одинаковые литералы кешируются как один
Правильный ответ. == сравнивает значения, а is — один ли это объект в памяти.

Разбор

a = [1, 2] и b = [1, 2] создают два отдельных списка с одинаковым содержимым, но это разные объекты в памяти. Поэтому a == b сравнивает значения и даёт True, а a is b сравнивает идентичность объектов и даёт False. Для маленьких целых чисел и коротких строк Python иногда переиспользует объекты, но для списков это не так: каждый литерал создаёт новый объект. Чтобы is дал True, нужно явно написать b = a — тогда обе переменные ссылаются на один и тот же список.

Проверь себя · 1/3разбор после ответа
Что вернёт выражение " Python ".strip()?
Тренировать Python в Telegram

Ещё вопросы по теме «Синтаксис и типы данных»