Tuple dibandingkan posisi dengan posisi: item pertama dari tuple pertama dibandingkan dengan item pertama dari tuple kedua; jika mereka tidak sama (yaitu yang pertama lebih besar atau lebih kecil dari yang kedua) maka itu adalah hasil perbandingan, jika item kedua dianggap, maka yang ketiga dan seterusnya.
Lihat Operasi Urutan Umum :
Urutan dengan tipe yang sama juga mendukung perbandingan. Secara khusus, tupel dan daftar dibandingkan secara leksikografis dengan membandingkan elemen yang sesuai. Ini berarti bahwa untuk membandingkan sama, setiap elemen harus membandingkan sama dan dua urutan harus dari jenis yang sama dan memiliki panjang yang sama.
Juga Membandingkan Nilai untuk perincian lebih lanjut:
Perbandingan leksikografis antara koleksi bawaan berfungsi sebagai berikut:
- Untuk dua koleksi untuk membandingkan sama, mereka harus dari jenis yang sama, memiliki panjang yang sama, dan setiap pasangan elemen yang terkait harus membandingkan sama (misalnya,
[1,2] == (1,2)
salah karena jenisnya tidak sama).
- Koleksi yang mendukung perbandingan pesanan diurutkan sama dengan elemen tidak sama pertama mereka (misalnya,
[1,2,x] <= [1,2,y]
memiliki nilai yang sama dengan x <= y
). Jika elemen yang sesuai tidak ada, koleksi yang lebih pendek dipesan terlebih dahulu (misalnya, [1,2] < [1,2,3]
benar).
Jika tidak sama, urutannya disusun sama dengan elemen yang berbeda pertama. Misalnya, cmp ([1,2, x], [1,2, y]) mengembalikan sama dengan cmp (x, y). Jika elemen yang sesuai tidak ada, urutan yang lebih pendek dianggap lebih kecil (misalnya, [1,2] <[1,2,3] mengembalikan True).
Catatan 1 : <
dan >
tidak berarti "lebih kecil dari" dan "lebih besar dari" tetapi "sebelum" dan "sesudah": jadi (0, 1) "sebelum" (1, 0).
Catatan 2 : tupel tidak boleh dianggap sebagai vektor dalam ruang n-dimensi , dibandingkan menurut panjangnya.
Catatan 3 : merujuk ke pertanyaan /programming/36911617/python-2-tuple-comparison : jangan berpikir bahwa tuple "lebih besar" daripada yang lain hanya jika ada elemen pertama lebih besar dari yang sesuai satu di yang kedua.
<
dan>
. Misalnya,(0, 1) < (1, 0)
evaluasi keTrue
.x = tuple([0 for _ in range(n)])
dan lakukan hal yang sama untuk y. Pengaturan n = 100, 1000, 10.000, dan 100.000 dan running%timeit x==y
memberikan nilai waktu masing-masing 0,5, 4,6, 43,9, dan 443 mikrodetik, yang hampir mendekati O (n) seperti yang bisa Anda dapatkan secara praktis.<
dan>
tidak berarti "lebih kecil dari itu" dan "lebih besar dari itu" tetapi "datang sebelum" dan "datang setelah": jadi(0, 1)
"datang sebelum"(1, 0)
The dokumentasi Python tidak menjelaskannya.
sumber
The python 2,5 dokumentasi menjelaskan dengan baik.
Sayangnya halaman itu tampaknya telah menghilang dalam dokumentasi untuk versi yang lebih baru.
sumber
a = ('A','B','C') # see it as the string "ABC" b = ('A','B','D')
A dikonversi ke ASCII terkait yang
ord('A') #65
sama untuk elemen lainnyaJadi,
>> a>b # True
Anda dapat menganggapnya sebagai membandingkan antara string (Ini persis, sebenarnya)hal yang sama juga berlaku untuk bilangan bulat.
x = (1,2,2) # see it the string "123" y = (1,2,3) x > y # False
karena (1 tidak lebih besar dari 1, pindah ke berikutnya, 2 tidak lebih besar dari 2, pindah ke 2 berikutnya kurang dari tiga -secara grafis -)
Poin kuncinya disebutkan dalam jawaban di atas
sumber
(1,2,3) > (1,2,2)
memberikanTrue