В чем разница сравнение через is и "=="?
Этот вопрос проверяет понимание различий между операторами сравнения is и ==, а также их использования в Python.
Короткий ответ
is используется для проверки идентичности объектов (т.е. указывают ли переменные на один и тот же объект в памяти), а == — для сравнения значений объектов (равны ли их значения).
Длинный ответ
- == (сравнение значений): Проверяет, имеют ли два объекта одинаковые значения, т.е. равны ли их содержимое. Это сравнение значений объектов, и оно будет возвращать True, если значения одинаковы, даже если объекты — это разные экземпляры.
- is (сравнение идентичности): Проверяет, указывают ли две переменные на один и тот же объект в памяти. Это сравнение идентичности объектов и возвращает True, если переменные ссылаются на тот же объект в памяти.
Пример:
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True (одинаковые значения)
print(a is b) # False (разные объекты в памяти)
c = a
print(a is c) # True (ссылаются на один и тот же объект)