Python: Разница между! = и «is not»

, мне неясно разница между синтаксисом ! = и не . Похоже, они делают то же самое:

>>> 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 было включено в первый список, но не во второй список?

11
задан Channel72 25 April 2011 в 19:20
поделиться