Python之is與==的區(qū)別詳解
Python有兩個(gè)用于相等比較的運(yùn)算符,“is”和“==”(等于)。在這篇文章中,我將教你們兩者之間的區(qū)別,以及通過(guò)幾個(gè)簡(jiǎn)單地例子說(shuō)明什么時(shí)候使用它們。
當(dāng)我還是一個(gè)孩子的時(shí)候,我們的鄰居家有兩只雙胞胎貓。
這兩只貓看起來(lái)看起來(lái)完全一樣 - 同樣的木炭毛,同樣敏銳的綠眼睛。撇開(kāi)一些個(gè)性怪癖,單從它們的外表根本無(wú)法區(qū)分它們。但他們確確實(shí)實(shí)是兩只不同的貓,兩個(gè)不同的生物,盡管它們看起來(lái)完全一樣。
就如相等和相同在意思上是有差異的,理解這種差異對(duì)理解Python中的操作符“is”和“==”是很重要的。
“==”更側(cè)重于檢測(cè)相等:如果這些貓是Python對(duì)象,我們用“==”比較它們,我們會(huì)得到“兩只貓是相等的”。
“is”側(cè)重于比較相同:如果我們用“is”比較它們,我們會(huì)得到“這是兩只不同的貓”。
在我把所有的東西都用貓作為類比之前,讓我們來(lái)看看一些真正的Python代碼。
首先,我們將創(chuàng)建一個(gè)新的列表對(duì)象并將其命名為a,然后定義另一個(gè)變量b指向同一列表的對(duì)象:

我們來(lái)看看這兩個(gè)變量,我們可以看到它們指向相同的列表。

因?yàn)閮蓚€(gè)列表對(duì)象看起來(lái)相同,所以當(dāng)我們使用“==”運(yùn)算符比較它們的相等性時(shí),我們會(huì)得到預(yù)期的結(jié)果:

然而,這并沒(méi)有告訴我們a和b是否真的指向同一個(gè)對(duì)象。當(dāng)然,我們知道它們是指向同一個(gè)對(duì)象的,因?yàn)槲覀冎敖o它們分配了相同的對(duì)象,但是假設(shè)我們不知道我們會(huì)發(fā)現(xiàn)什么?最后,如果你的時(shí)間不是很緊張,并且又想快速的提高,最重要的是不怕吃苦,建議你可以聯(lián)系維:762459510 ,那個(gè)真的很不錯(cuò),很多人進(jìn)步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
那么將兩個(gè)變量用“is”操作符進(jìn)行比較,這會(huì)證明兩個(gè)變量是指向同一個(gè)列表對(duì)象的:

我們來(lái)看看當(dāng)我們創(chuàng)建列表對(duì)象的相同副本時(shí)會(huì)發(fā)生什么,我們可以通過(guò)在現(xiàn)有列表上調(diào)用list來(lái)創(chuàng)建一個(gè)名為c的副本:

您將再次看到我們剛剛創(chuàng)建的新列表看起來(lái)與a和b指向的list對(duì)象相同:

這就是有趣的地方,如果我們使用“==”運(yùn)算符來(lái)比較列表副本c和初始化列表a,您希望看到什么答案?

好吧,我希望這是您所期待的,這個(gè)結(jié)果告訴我們c和a有相同的內(nèi)容,它們被Python認(rèn)為是相等的,但它們是否指向同一個(gè)對(duì)象?我們來(lái)看看is操作符:

以上我們得到了不同的結(jié)果。Python告訴我們,c和a指向兩個(gè)不同的對(duì)象,盡管它們的內(nèi)容是相同的。最后,如果你的時(shí)間不是很緊張,并且又想快速的提高,最重要的是不怕吃苦,建議你可以聯(lián)系維:762459510 ,那個(gè)真的很不錯(cuò),很多人進(jìn)步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
所以,回顧一下,我們區(qū)分“is”和“==”用以下兩個(gè)簡(jiǎn)短的定義:
- 如果兩個(gè)變量指向同一個(gè)(相同的)對(duì)象,則“is”表達(dá)式為True。
- 如果變量所引用的對(duì)象是相等的(有相同的內(nèi)容),則“==”表達(dá)式的值為True。
只要記住這個(gè),當(dāng)您需要在Python中使用is和==的時(shí)候,就會(huì)想到一對(duì)孿生的貓(狗也一樣),您就會(huì)知道該用哪個(gè)了。
到此這篇關(guān)于Python之is與==的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Python之is與==的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django template 模板渲染的實(shí)現(xiàn)
Django 的模板系統(tǒng)旨在使設(shè)計(jì)人員能夠編寫 HTML,同時(shí)以一種安全和靈活的方式動(dòng)態(tài)顯示數(shù)據(jù),本文主要介紹了django template模板渲染的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2025-01-01
django中使用POST方法獲取POST數(shù)據(jù)
這篇文章主要介紹了django中使用POST方法獲取POST數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python編程實(shí)現(xiàn)及時(shí)獲取新郵件的方法示例
這篇文章主要介紹了Python編程實(shí)現(xiàn)及時(shí)獲取新郵件的方法,涉及Python實(shí)時(shí)查詢郵箱及郵件獲取相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
在pytorch中如何查看模型model參數(shù)parameters
這篇文章主要介紹了在pytorch中如何查看模型model參數(shù)parameters,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
python中count函數(shù)簡(jiǎn)單的實(shí)例講解
在本篇文章里小編給大家整理了關(guān)于python中count函數(shù)簡(jiǎn)單的實(shí)例講解,有興趣的朋友們可以參考下。2020-02-02
解決plt.savefig()保存到本地的圖片上下左右會(huì)有白邊
這篇文章主要介紹了解決plt.savefig()保存到本地的圖片上下左右會(huì)有白邊的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
如何使用Typora+MinIO+Python代碼打造舒適協(xié)作環(huán)境
這篇文章主要介紹了如何使用Typora+MinIO+Python代碼打造舒適協(xié)作環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05

