Python中运算符 is 和 == 的区别
生活随笔
收集整理的這篇文章主要介紹了
Python中运算符 is 和 == 的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python 中有個很有趣的運算符–is,其作用看似和==是一樣的,但實際上并非如此。
通過一個示例來看一下兩者的去區別:
>>> a = b = [1,2,3] >>> c = [1,2,3] >>> a == b True >>> a == c True >>> a is b True >>> a is c False前幾個示例沒啥問題,但是最后一個a is c 返回 False,為什么會這樣呢?因為 is 檢查的是兩個對象是否相同,而不是相等,變量 x 和 y 指向同一個列表,而c 指向另一個列表,雖然兩個的值都是一樣,但是并不是同一個對象,所以這里 a is c 返回 False
再來看個示例,可以更加說明這一點:
>>> a = [1,2,3] >>> b = [2,1] >>> a is not b True >>> del a[2] >>> a [1, 2] >>> b.reverse() >>> b [1, 2] >>> a==b True >>> a is b False從上例可以看到,a 和 b 一開始就不是同一個列表值,所以 a is not b自然返回的是 False,經過調整將a 和 b 的值修改成一樣,這時候 a==b返回 True,而 a is b 依然返回False。
很顯然這兩個列表相等,但并不相同。
總之,==是用來檢查兩個對象是否相等,而 is 用來檢查兩個對象是否相同。
注意:不要將 is 用于數字或字符串這種不可變的基本值。鑒于 Python內部處理這些對象的方式,這種做法的接口將會不可預測。
本書知識點來源于《Python 基礎教程》第三版。
總結
以上是生活随笔為你收集整理的Python中运算符 is 和 == 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 序列操作之切片
- 下一篇: Qt for Python之 PySid