Cara Mengurutkan Daftar dengan Python (Ascending & Descending)
Pelajari cara mengurutkan daftar dengan Python menggunakan metode sortir() dan fungsi sortir(). Temukan contoh pengurutan kunci khusus dan urutan terbalik.
Ikhtisar
Menyortir data adalah salah satu tugas paling umum dalam pemrograman, baik Anda mengurutkan profil pengguna berdasarkan usia, membuat daftar produk berdasarkan harga, atau mengatur hasil pencarian. Python menawarkan dua cara bawaan yang sangat optimal untuk mengurutkan daftar: metode `list.sort()` dan fungsi `sorted()`. Keduanya menggunakan algoritma pengurutan yang sangat efisien yang disebut Timsort, yang berjalan dalam kompleksitas waktu O(N log N).
Perbedaan utama antara keduanya adalah mutabilitas. Metode `list.sort()` mengurutkan daftar di tempatnya, artinya metode ini secara langsung mengubah daftar asli dan mengembalikan `Tidak Ada`. Sebaliknya, fungsi `sorted()` membiarkan daftar asli tidak berubah dan mengembalikan daftar terurut yang baru. Pembedaan ini sangat penting: gunakan `sort()` ketika Anda ingin menghemat memori dan tidak memerlukan urutan asli, dan gunakan `sorted()` ketika Anda perlu menjaga daftar asli tetap utuh atau ketika mengurutkan iterable non-daftar seperti tupel atau kamus.
Kedua metode pengurutan menerima dua argumen kata kunci opsional: `reverse` dan `key`. Argumen `reverse` adalah nilai boolean; mengaturnya ke `True` mengurutkan daftar dalam urutan menurun (terbalik). Argumen `key` menerima fungsi yang diterapkan ke setiap elemen sebelum dibandingkan. Hal ini memungkinkan logika pengurutan yang kompleks, seperti mengurutkan daftar string berdasarkan panjangnya, atau mengurutkan daftar kamus berdasarkan kunci tertentu.
Kode & Output Eksekusi
Kode ini menunjukkan pengurutan daftar angka menggunakan sort() dan diurutkan(), pengurutan terbalik, dan pengurutan kunci khusus berdasarkan panjang string.
numbers = [42, 7, 12, 89, 23]
# 1. Using sorted() (returns new list)
new_sorted = sorted(numbers)
print("Original:", numbers)
print("Sorted new list:", new_sorted)
# 2. Using sort() (in-place modification)
numbers.sort()
print("Modified original list:", numbers)
# 3. Sorting in reverse (descending)
numbers.sort(reverse=True)
print("Reverse sorted list:", numbers)
# 4. Custom sorting (by string length)
words = ["banana", "pear", "apple", "fig"]
words.sort(key=len)
print("Sorted by length:", words)Original: [42, 7, 12, 89, 23]
Sorted new list: [7, 12, 23, 42, 89]
Modified original list: [7, 12, 23, 42, 89]
Reverse sorted list: [89, 42, 23, 12, 7]
Sorted by length: ['fig', 'pear', 'apple', 'banana']Implementasi Langkah demi Langkah
- Gunakan fungsi sortir() untuk mengurutkan salinan daftar tanpa mengubah data asli.
- Gunakan metode .sort() langsung pada objek daftar untuk memodifikasinya di tempat dan menghemat memori.
- Berikan reverse=True sebagai parameter untuk mengurutkan item dalam urutan menurun.
- Gunakan key=lambda x: ... untuk mengurutkan elemen berdasarkan properti khusus (seperti panjang atau nilai bersarang).
Pertanyaan yang Sering Diajukan
Apa perbedaan antara daftar.sort() dan diurutkan()?
list.sort() memodifikasi daftar di tempat dan mengembalikan Tidak Ada, sementara diurutkan() membiarkan daftar asli tidak berubah dan mengembalikan daftar terurut baru.
Bagaimana Anda mengurutkan daftar kamus berdasarkan kunci?
Gunakan parameter key dengan fungsi lambda atau operator.itemgetter. Misalnya: list.sort(key=lambda item: item["usia"]).
Topik Terkait
Pelajari cara menemukan panjang daftar dengan Python menggunakan fungsi len(). Pahami kompleksitas waktu O(1) dan jumlah pemeriksaan.
Cara Menghapus Duplikat Dari Daftar dengan PythonPelajari cara menghapus duplikat dari daftar dengan Python sambil mempertahankan atau mengabaikan urutan. Bandingkan konversi set, tombol dict, dan metode loop.
Cara Menggabungkan Dua Daftar dengan PythonPelajari cara terbaik untuk menggabungkan dan menggabungkan dua daftar dengan Python. Bandingkan operator plus, metode perluasan, pembongkaran daftar, dan opsi rantai.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Variabel Python & Tipe Data Dijelaskan
Memahami variabel Python dan tipe data inti (string, integer, float, boolean). Panduan pemula lengkap untuk penugasan memori dengan Python.
Lembar
Panduan referensi cepat untuk operasi daftar Python. Kuasai penambahan, penyisipan, penghapusan, pengurutan, dan pengirisan elemen.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.