python中 "is"和"=="的区别


python中"is"和"=="区别

在做leetcode的时候,在判断两个数据是否相等时使用了python中的is not,想着入乡随俗,既然入了python的门就用python中的特定语法
天真的我还以为"is"和"=="是同样的效果,结果当然是大错特错!

"is"作为判断地址是否相等,即判断两个变量是否指向同一内存地址

"=="判断两个变量的值是否相等

同样的,"is not"和"!="遵循同样的逻辑

下面给出示例:

downey@ubuntu:~/workspace_downey/bloc_test$ python
Python 2.7.6 (default, Nov 23 2017, 15:50:55) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a=[1,2,3]
>>> b=[1,2,3]
>>> print a is b
False
>>> print a == b
True
>>> id(a)
3074554924L
>>> id(b)
3072042316L

从示例中可以看出,a和b的内容是一样的,但是地址不一致( id()函数用来获取变量的地址)。
a is b 返回False


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM