Python

В чем разница между == и is в python?

Либо я даун и не вижу разницы, либо я просто даун. Объясните на пальцах, из статей и видео и нихера не понял
== равенство значений
is - идентичность
Примеры использования - вот писал графический калькулятор
https://pastebin.com/zeLh0ufA
В местах типа final_result2 = list(filter(lambda x: not x is None, final_result1)) пытался использовать вместо is !=, то есть не равно, но PyCharm это подчеркнул как ошибку и сказал, нет, мил человек, здесь нужно is, а не !=
Vitek Likhoshva
Vitek Likhoshva
5 840
Лучший ответ
Азад Хан-Хойский Понял, спасибо
В Python оператор == используется для сравнения значений двух объектов, тогда как оператор is используется для проверки, указывают ли две переменные на один и тот же объект в памяти.

Оператор == сравнивает значения двух объектов и возвращает True, если эти значения равны, и False в противном случае. Например:

a = 5
b = 5
print(a == b) # True
Оператор is проверяет, указывают ли две переменные на один и тот же объект в памяти, и возвращает True, если это так, и False в противном случае. Например:

a = [1, 2, 3]
b = a
print(a is b) # True
В этом примере переменная b ссылается на тот же объект в памяти, что и переменная a. Однако, если мы создадим новый список с теми же значениями, то оператор is вернет False, так как это уже другой объект в памяти:

a = [1, 2, 3]
b = [1, 2, 3]
print(a is b) # False
В общем случае, использование оператора == должно использоваться для сравнения значений объектов, а оператора is - для проверки, указывают ли две переменные на один и тот же объект в памяти. Однако, в некоторых случаях, таких как сравнение со значениями None или проверка на истинность (True или False), может быть более эффективным использовать оператор is.
Азад Хан-Хойский А можете привести на практике пример с использованием is. В целом понятно, но не понимаю, где это можно использовать