Rumah > pembangunan bahagian belakang > Tutorial Python > Perbandingan Rentetan Python: Bilakah `==` Berbeza Daripada `is`?

Perbandingan Rentetan Python: Bilakah `==` Berbeza Daripada `is`?

Barbara Streisand
Lepaskan: 2024-12-26 16:39:14
asal
614 orang telah melayarinya

Python String Comparison: When Does `==` Differ From `is`?

Menyelidiki Percanggahan Perbandingan Rentetan: '==' vs 'is'

Perbuatan membandingkan rentetan menggunakan sama ada '== ' atau 'adalah' kadangkala boleh menghasilkan hasil yang berbeza. Ini menimbulkan persoalan mengapa jurang ini wujud.

Dua pembolehubah rentetan mungkin mempunyai nilai yang sama, namun 's1 == s2' secara konsisten mengembalikan Benar, manakala 's1 ialah s2' kadangkala mengembalikan Salah.

Apabila ditafsirkan dalam Python, perbandingan serupa berjaya:

>>> s1 = 'text'
>>> s2 = 'text'
>>> s1 is s2
True
Salin selepas log masuk

Untuk memahami fenomena ini, adalah penting untuk membezakan antara ujian identiti ('adalah') dan ujian kesaksamaan ('==').

Dalam contoh yang disediakan, perkara yang berlaku direplikasi dalam penterjemah seperti berikut:

>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False
Salin selepas log masuk

Perbezaan itu timbul kerana 'adalah' membandingkan identiti objek (iaitu, alamat memori), manakala '==' membandingkan nilainya. Dalam senario di atas, 'a' dan 'b' mempunyai nilai yang sama tetapi wujud secara berasingan dalam ingatan.

Oleh itu, logik bahawa 'a ialah b' akan menilai kepada Palsu kerana ia adalah objek yang berbeza, walaupun kandungannya sejajar. Pada dasarnya, 'a ialah b' adalah serupa dengan 'id(a) == id(b)'.

Atas ialah kandungan terperinci Perbandingan Rentetan Python: Bilakah `==` Berbeza Daripada `is`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan