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.
