Python中is和==的區別


要理解Python中is和==的區別,首先要理解Python對象的三個要素:

要素 說明 獲取方式
id 身份標識,基本就是內存地址,用來唯一標識一個對象 id(obj)
type 數據類型 type(obj)
value :-----:

is和==區別

標識 名稱 判斷方法
is 同一性運算符 id
== 比較運算符 value

程序舉例

例1:

屏幕截圖2.jpg
a = {"a":1, "b":2}
b = a.copy()

a == b  # True value一樣
a is b  # False id不一樣

例2:

屏幕截圖.jpg
>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False
>>>
>>> print id(x)
>>> print id(y)
>>> print id(z)

>>> a = 1 #a和b為數值類型
>>> b = 1
>>> a is b
True
>>> id(a)
>>> id(b)
>>> a = 'cheesezh' #a和b為字符串類型
>>> b = 'cheesezh'
>>> a is b
True
>>> id(a)
>>> id(b)
>>> a = (1,2,3) #a和b為元組類型
>>> b = (1,2,3)
>>> a is b
False
>>> id(a)
>>> id(b)
>>> a = [1,2,3] #a和b為list類型
>>> b = [1,2,3]
>>> a is b
False
>>> id(a)
>>> id(b)
>>> a = {'cheese':1,'zh':2} #a和b為dict類型
>>> b = {'cheese':1,'zh':2}
>>> a is b
False
>>> id(a)
>>> id(b)
>>> a = set([1,2,3])#a和b為set類型
>>> b = set([1,2,3])
>>> a is b
False
>>> id(a)
>>> id(b)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Python中的對象包含三要素:id、type、value。 id 用來唯一標識一個對象,type 標識對象的類型...
    東飛閱讀 203評論 0 0
  • 在python中,is檢查兩個對象是否是同一個對象,而==檢查他們是否相等. 例如 p = [1]q = [1]p...
    yorickshan閱讀 525評論 0 0
  • http://python.jobbole.com/85231/ 關于專業技能寫完項目接著寫寫一名3年工作經驗的J...
    燕京博士閱讀 7,628評論 1 118
  • 上周,給上海平和學校的學生上了一節關于都江堰水利工程的課。從小就去都江堰參觀,現在每年也要去都江堰好幾次,也從小就...
    哎喲不錯喲_5594閱讀 209評論 0 0
  • 曉漏 嗚嗚的綠皮火車 夕陽點燃上午 樹葉的蔭翳 搭成巨大的羅網 牢牢套住 嬉戲的時光 留下了孤單的影子 獨自地玩耍...
    衍辰閱讀 243評論 0 2