我不清楚语法 !=
和 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
包含在第一个列表中,但没有包含在第二个列表中?
最佳答案
是
测试对象身份,但是==
测试对象值是否相等:
In [1]: a = 3424
In [2]: b = 3424
In [3]: a is b
Out[3]: False
In [4]: a == b
Out[4]: True
关于Python:!= 和 "is not"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782203/