В чем разница между ‘is’ и ‘==’ в python
Оператор is сравнивает идентичность двух объектов, в то время как оператор == сравнивает значения двух объектов. Существует разница в значении между равными и идентичными. И эта разница важна, когда вы хотите понять, как себя ведут операторы Python и ==.
Оператор == используется, когда значения двух операндов равны, тогда условие становится истинным.
Оператор is оценивает значение true, если переменные с обеих сторон оператора указывают на один и тот же объект и false в противном случае.
Рассмотрим следующий пример:
list_1 = ['a', 'b', 'c'] list_2 = list_1 list_3 = list(list_1) print(list_1) print(list_2) print(list_3)
Выход
['a', 'b', 'c'] ['a', 'b', 'c'] ['a', 'b', 'c']
В приведенном выше примере мы видим, что они указывают на идентичные списки. Затем мы проверяем равенство этих списков.
print(list_1 == list_2) print(list_1 == list_3)
Вышеприведенный вывод кода:
True True
Это связано с тем, что их значения list_1, list_2, list_3 равны, тогда условие становится истинным.
print(list_1 is list_2) print(list_1 is list_3)
Вышеприведенный вывод кода:
True False
Здесь вы можете видеть (list_1 is list_3) False, потому что list_1 и list_3 указывают на два разных объекта, хотя их содержимое может быть одинаковым. Итак, мы можем сказать, что «is» вернет True, если две переменные указывают на один и тот же объект и «==», если объекты, на которые ссылаются переменные, равны.