Mengurutkan Berdasarkan Banyak Field
Menggunakan key tuple dan reverse sebagai pemecah seri
Mengurutkan Berdasarkan Banyak Field adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Saat Satu key Tidak Cukup
Terkadang item memiliki nilai yang sama pada atribut pertama sehingga Anda harus memecahkan seri tersebut. Solusinya adalah tuple key yang mencantumkan atribut berdasarkan urutan prioritas.
Tuple Dibandingkan dari Kiri ke Kanan
Python membandingkan tuple elemen demi elemen: Python memeriksa item pertama dan hanya melihat item kedua jika item pertama seri.
print((1, 9) < (1, 2)) # False
print((1, 2) < (2, 0)) # TrueTuple key untuk Dua Atribut
Kembalikan sebuah tuple dari key Anda untuk mengurutkan berdasarkan atribut pertama, lalu atribut kedua. Cara ini mengurutkan orang berdasarkan usia, lalu nama.
people.sort(key=lambda p: (p.age, p.name))Urutan Utama dan Sekunder
Atribut paling kiri adalah pengurutan utama, sedangkan atribut berikutnya menjadi pemecah seri. Susun ulang tuple untuk mengubah atribut yang menjadi penentu.
data = [(2, "b"), (1, "z"), (1, "a")]
print(sorted(data))
# [(1, 'a'), (1, 'z'), (2, 'b')]Gabungkan Urutan Menaik dan Menurun
Untuk mengurutkan satu atribut secara menaik dan atribut lain secara menurun, negasikan atribut numerik yang ingin Anda urutkan secara menurun di dalam tuple key.
items.sort(key=lambda x: (x.group, -x.score))Trik Negasi Membutuhkan Bilangan
Trik tanda minus hanya bekerja pada bilangan. Untuk membalik atribut teks, Anda harus menumpuk pengurutan alih-alih melakukan negasi.
Pengurutan Stabil Memungkinkan Penumpukan
Karena pengurutan bersifat stabil, Anda dapat mengurutkan berdasarkan key minor terlebih dahulu, lalu berdasarkan key mayor, dan elemen yang seri tetap berada dalam urutan yang benar.
rows.sort(key=lambda r: r.name)
rows.sort(key=lambda r: r.age, reverse=True)Penumpukan vs Satu Tuple
Satu tuple key lebih cepat dan lebih jelas untuk kasus sederhana. Pengurutan bertingkat unggul ketika satu atribut berupa teks harus menaik, sementara atribut lain harus menurun.
itemgetter untuk Kecepatan
Untuk tuple berbasis indeks, itemgetter adalah key yang rapi dan cepat. Fungsi ini mengambil beberapa atribut sekaligus berdasarkan urutan prioritas.
from operator import itemgetter
rows.sort(key=itemgetter(1, 0))Pemecah Seri Membuat Keluaran Deterministik
Menambahkan pemecah seri unik terakhir seperti id membuat keluaran stabil di berbagai eksekusi, sesuatu yang dihargai penguji dengan pemeriksaan ketat.
Rencanakan key Sebelum Menulis Kode
Baca soalnya dan tuliskan atribut pengurutan berdasarkan urutan. Tuple key yang jelas mengubah perbandingan rumit menjadi satu baris pendek.
Pemeriksaan Cepat
Anda ingin mengurutkan siswa berdasarkan nilai secara menaik, lalu berdasarkan nama secara menaik.
Ringkasan
Anda dapat memecahkan seri dengan tuple key, menegasikan bilangan untuk urutan menurun, dan menumpuk pengurutan stabil untuk arah campuran. Pemecah seri menjaga keluaran tetap rapi. ✅
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengurutkan Berdasarkan Banyak Field” gratis?
Ya — teks lengkap “Mengurutkan Berdasarkan Banyak Field” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengurutkan Berdasarkan Banyak Field”?
Menggunakan key tuple dan reverse sebagai pemecah seri Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?
Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Mengurutkan Berdasarkan Banyak Field” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?
Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- sorted() dan Fungsi key
- Mengurutkan Berdasarkan Banyak Field
- Urutan Kustom dengan functools.cmp_to_key
- Mengapa Mengurutkan Dahulu Membuka Solusi