Lompat ke konten utama
←

Python dari Nol

Pelajaran 27 dari 28

Kamus, error, dan pustaka bawaan

Mengurutkan dengan sorted, key, dan lambda

Setelah pelajaran ini kamu bisa mengurutkan data berpasangan dengan sorted dan key, menulis lambda sebagai fungsi kunci, dan menjumlahkan dengan ekspresi generator.

  • ±13 menit
  • Video 6 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Video

Mengurutkan dengan sorted, key, dan lambda · 5:49

0:00 / 5:49

Wajib ditonton sampai tuntas; materi berikutnya terbuka setelah video ini selesai. Video tidak bisa dipercepat atau dilompati; tombol mundur bisa dipakai untuk mengulang. Masuk supaya tontonanmu tercatat

Materi

sorted(daftar) mengembalikan list baru yang terurut dari kecil ke besar. reverse=True membalik urutannya. List aslinya tidak berubah.

Kadang yang diurutkan bukan angka polos, melainkan data berpasangan seperti (nama, stok). Argumen key menyebut apa yang dibandingkan. key menerima fungsi. sorted memanggil fungsi itu untuk setiap isi, lalu mengurutkan menurut hasilnya.

stok = [("pulpen", 12), ("buku", 40), ("map", 7)]
print(sorted(stok, key=lambda b: b[1]))
# [('map', 7), ('pulpen', 12), ('buku', 40)]
print(max(stok, key=lambda b: b[1]))     # ('buku', 40)
print(sum(j for n, j in stok))           # 59

kota = ["bogor", "Cilegon", "ambon"]
print(sorted(kota))                      # ['Cilegon', 'ambon', 'bogor']
print(sorted(kota, key=str.lower))       # ['ambon', 'bogor', 'Cilegon']

lambda b: b[1] adalah fungsi kecil tanpa nama: terima b, kembalikan b[1]. Isinya hanya satu ekspresi, tanpa kata return. Fungsi biasa yang ditulis dengan def juga boleh dipakai sebagai key. max dan min menerima key yang sama, jadi max(stok, key=...) memberi barang dengan stok terbanyak.

Baris sum di contoh memakai ekspresi generator. Bentuknya mirip list comprehension, tetapi ditulis tanpa kurung siku, langsung di dalam sum, max, atau min. Nilainya dihitung satu per satu tanpa membuat list antara.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke

Tampilkan 3 lagi

Sebagian materi kelas ini diadaptasi dari Exercism — jalur Python (problem-specifications) (MIT).