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