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.

Coba Solusi ini di Editor

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.

sort_list.py
Coba di Editor
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)
Keluaran Terminal
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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.