, мне неясно разница между синтаксисом ! =
и не
. Похоже, они делают то же самое:
>>> s = 'a'
>>> s != 'a'
False
>>> s is not 'a'
False
Но когда я использую не
в понимании списка, это дает другой результат, чем если бы я использовал ! =
.
>>> 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
было включено в первый список, но не во второй список?