Мне неясна разница между синтаксисом !=
и is not
. Похоже, они делают то же самое:
>>> s = 'a'
>>> s != 'a'
False
>>> s is not 'a'
False
Но, когда я использую is not
в понимании списка, это дает другой результат, чем если бы я использовал !=
.
>>> s = "hello"
>>> [c for c in s if c is not 'o']
['h', 'e', 'l', 'l', 'o']
>>> [c for c in s if c != 'o']
['h', 'e', 'l', 'l']
Почему o
был включен в первый список, но не во второй список?