Rumah > Artikel > pembangunan bahagian belakang > Menggunakan Tuple dan Perbandingan dalam Python: Panduan Pemula
Tuple ialah jujukan tidak berubah, biasanya digunakan untuk menyimpan koleksi data heterogen. Berikut ialah gambaran ringkas tentang tupel dan cara ia boleh dibandingkan:
Tuple dibuat dengan meletakkan semua item (elemen) di dalam kurungan (), dipisahkan dengan koma.
# Creating a tuple t1 = (1, 2, 3) t2 = (4, 5, 6) # Tuples can also be created without parentheses t3 = 1, 2, 3 # Tuples can contain different types t4 = (1, "hello", 3.14)
Apabila membandingkan tupel dalam Python, perbandingan dilakukan secara leksikografik. Ini bermakna Python membandingkan elemen tupel demi elemen, bermula dari elemen pertama. Jika elemen pertama adalah sama, ia bergerak ke elemen kedua, dan seterusnya, sehingga ia menemui unsur yang berbeza atau mencapai penghujung tupel.
Tuples dalam Python boleh dibandingkan menggunakan operator perbandingan seperti ==, !=, <, <=, >, dan >=. Apabila membandingkan tupel, Python membandingkan elemen item demi elemen, bermula dengan elemen pertama.
Kesederhanaan: Tuple menawarkan cara ringkas untuk mengumpulkan dan membandingkan berbilang atribut. Daripada menulis berbilang dan syarat, anda boleh menggunakan satu perbandingan tuple.
Turutan Leksikografi: Apabila membandingkan tupel, Python melakukan perbandingan leksikografik, yang bermaksud ia membandingkan elemen pertama, kemudian elemen kedua jika elemen pertama adalah sama, dan seterusnya. Ini sepadan dengan banyak cara pesanan semula jadi (cth., mengisih mengikut kriteria utama dan menengah).
Kebolehbacaan: Menggunakan tupel boleh menjadikan logik perbandingan lebih jelas dan lebih mudah dibaca. Jelas sekali bahawa anda sedang membandingkan dua set atribut, bukannya mempunyai senarai panjang dan syarat.
t1 = (1, 2, 3) t2 = (1, 2, 3) t3 = (3, 2, 1) print(t1 == t2) # True, because all elements are equal print(t1 == t3) # False, because elements are different
Mari kita periksa perbandingan:
t1 = (1, 2, 3) t2 = (1, 2, 4) # Step-by-step comparison: # Compare first elements: 1 == 1 (equal, so move to the next elements) # Compare second elements: 2 == 2 (equal, so move to the next elements) # Compare third elements: 3 < 4 (3 is less than 4) # Therefore, t1 < t2 is True
Python bermula dengan membandingkan elemen pertama: 1 dan 1. Memandangkan ia adalah sama, ia bergerak ke elemen kedua.
Elemen kedua ialah 2 dan 2. Sekali lagi, ia adalah sama, jadi ia bergerak ke elemen ketiga.
Elemen ketiga ialah 3 dan 4. Oleh kerana 3 adalah kurang daripada 4, t1 < t2 adalah Benar.
t1 = (1, 2, 3) t3 = (1, 3, 2) # Step-by-step comparison: # Compare first elements: 1 == 1 (equal, so move to the next elements) # Compare second elements: 2 < 3 (2 is less than 3) # Therefore, t1 < t3 is True
Python bermula dengan membandingkan elemen pertama: 1 dan 1. Memandangkan ia adalah sama, ia bergerak ke elemen kedua.
Elemen kedua ialah 2 dan 3. Oleh kerana 2 kurang daripada 3, t1 < t3 adalah Benar.
Setelah Python menemui sepasang elemen yang tidak sama, ia boleh menentukan hasil perbandingan tanpa melihat elemen yang lain.
Dalam t1 < t2, selepas membandingkan elemen ketiga (3 < 4), tidak kira apa yang berlaku selepas itu kerana keputusan sudah ditentukan.
Begitu juga, dalam t1 < t3, selepas membandingkan elemen kedua (2 < 3), Python tidak perlu menyemak elemen ketiga kerana hasilnya ditentukan.
Mari kita lihat contoh lain untuk mengukuhkan pemahaman ini.
Pertimbangkan tupel:
t4 = (1, 2)
t5 = (1, 2, 0)
Membandingkan t4 dan t5:
t4 = (1, 2) t5 = (1, 2, 0) # Step-by-step comparison: # Compare first elements: 1 == 1 (equal, so move to the next elements) # Compare second elements: 2 == 2 (equal, but t4 has no more elements) # Therefore, t4 < t5 is True because t4 is considered "less than" t5 due to its shorter length
Elemen pertama adalah sama (1 == 1).
Elemen kedua adalah sama (2 == 2).
t4 tidak mempunyai unsur lagi, manakala t5 mempunyai satu unsur lagi (0). Oleh itu, t4 dianggap kurang daripada t5.
Mari kita lihat bagaimana kita boleh menggunakan tupel untuk melaksanakan kaedah perbandingan dalam kelas. Kami akan mengambil contoh yang lebih mudah.
Andaikan kita mempunyai kelas Point yang mewakili titik dalam ruang 2D. Kita boleh menggunakan tupel untuk membandingkan mata berdasarkan koordinatnya:
class Point: def __init__(self, x, y): self.x = x self.y = y def __eq__(self, other): if isinstance(other, Point): return (self.x, self.y) == (other.x, other.y) return False def __lt__(self, other): if isinstance(other, Point): return (self.x, self.y) < (other.x, other.y) return NotImplemented # Testing the Point class p1 = Point(1, 2) p2 = Point(1, 2) p3 = Point(2, 1) print(p1 == p2) # True print(p1 < p3) # True, because 1 < 2 print(p3 < p1) # False
Perbandingan Tuple adalah leksikografik, bermakna membandingkan unsur demi unsur, dari kiri ke kanan.
Python berhenti membandingkan sebaik sahaja ia menemui sepasang unsur yang tidak sama.
Pasangan unsur yang berbeza pertama menentukan hasil perbandingan.
Atas ialah kandungan terperinci Menggunakan Tuple dan Perbandingan dalam Python: Panduan Pemula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!