首頁 >後端開發 >Python教學 >Python 的 `is` 和 `==` 運算子何時會產生不同的結果?

Python 的 `is` 和 `==` 運算子何時會產生不同的結果?

Patricia Arquette
Patricia Arquette原創
2024-12-14 00:00:12849瀏覽

When Do Python's `is` and `==` Operators Produce Different Results?

重溫「is」運算子

Python 等程式語言中的「is」運算子是一個強大的工具,可以比較超出其價值的物體。與常見的誤解相反,「is」不會比較變數的值,而是比較實例本身。要理解這種區別,請考慮提供的範例:

x = [1, 2, 3]
y = [1, 2, 3]

print(x is y)  # False

這裡,「is」運算子傳回 False,表示變數 x 和 y 引用不同的實例,儘管它們具有相同的值。這種差異源自於 Python 中物件標識的概念。

Python 中的每個物件(包括清單)都儲存為具有自己的記憶體位置的唯一實例。 「id()」函數可用於檢索物件的記憶體位址,顯示x 和y 有不同的位址:

print(id(x))  # 123456789
print(id(y))  # 987654321

使用「is」運算子時,它檢查兩個變數是否相同指的是完全相同的實例。在這種情況下,x 和 y 是清單類型的單獨實例,即使它們的內容相同。

要比較值而不是物件標識,應使用「==」相等運算子:

print(x == y)  # True

與「is」相反,「==」驗證兩個物件的值是否匹配。

以上是Python 的 `is` 和 `==` 運算子何時會產生不同的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn