python學習筆記——‘is’和‘==’的區別

來源:互聯網
上載者:User

標籤:python   對象   

‘==’的意思是判斷兩個對象的內容是否一樣,而‘is’則是判斷兩個對象是否為同一個對象。同樣的道理適用於‘!=’和‘is not’


例如:

>>> x = y = [1, 2, 3]>>> z = [1, 2, 3]>>> x == yTrue>>> x == zTrue>>> x is yTrue>>> x is zFalse>>> x.reverse()>>> x[3, 2, 1]>>> y[3, 2, 1]>>> 

x與y實為同一對象,對x做了翻轉,y的值也是翻轉了的

而下面:


>>> a_list = ['xxx'] * 10>>> a_list['xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx']>>> a_list[0] = 'yyy'>>> a_list['yyy', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx']


>>> b_list = [['xxx']] * 10>>> b_list[['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx']]>>> b_list[0][0] = 'yyy'>>> b_list[['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy']]>>> 

第一個a_list裡實為10個對象,修改了第一個字串那就是修改了第一個字串。

第二個b_list裡實際上就只有一個對象,引用了10次,所以改了b_list[0][0],所有值都變為‘yyy’了


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

python學習筆記——‘is’和‘==’的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.