首頁 > 後端開發 > Python教學 > Python 中的「is」和「==」運算子何時會傳回不同的結果?

Python 中的「is」和「==」運算子何時會傳回不同的結果?

Barbara Streisand
發布: 2024-12-12 14:58:21
原創
906 人瀏覽過

When Do `is` and `==` Operators Return Different Results in Python?

理解「is」運算子

儘管具有相同的值,但在使用「is」運算子時,一個常見的誤解是假設它比較變數值。但是,此運算子實際上評估兩個變數是否引用同一個物件。

在您的範例中,以下程式碼:

x = [1, 2, 3]
y = [1, 2, 3]
登入後複製

可能會導致您期望「is」運算子回傳True,但回傳False:

print(x is y)  # False
登入後複製

這是因為x 和y 儘管共享相同的值,但被視為兩個不同的列表。正如其唯一識別碼所示,它們是不同的物件:

print(id(x))
print(id(y))  # Different identifiers indicate different objects
登入後複製

要比較值,請使用「==」運算子:

print(x == y)  # True for equal values
登入後複製

修改其中一個清單不會影響另一個,確認它們是單獨的物件:

x[0] = 4
print(y)  # [1, 2, 3] (Unchanged)
登入後複製

將y 分配給 x建立一個指向相同清單的新引用object:

x = y
print(id(x))
print(id(y))  # Same identifiers after assignment
print(x is y)  # True (Same object)
登入後複製

請記住,「is」運算子測試物件身份,而「==」運算子比較值。明智地使用它們,以避免在理解變數引用行為時出現潛在的混亂。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板