Latihan built-in: enumerate()
Dalam latihan ini, Anda akan berlatih menggunakan fungsi bawaan Python enumerate(). Fungsi ini berguna untuk memperoleh daftar yang memiliki indeks. Misalnya, bayangkan Anda memiliki daftar orang yang datang ke pesta yang Anda gelar. Daftar diurutkan berdasarkan waktu kedatangan (Jerry datang pertama, diikuti oleh Kramer, dan seterusnya):
names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']
Jika Anda ingin menambahkan indeks yang merepresentasikan urutan kedatangan, Anda bisa menggunakan for loop berikut:
indexed_names = []
for i in range(len(names)):
index_name = (i, names[i])
indexed_names.append(index_name)
[(0,'Jerry'),(1,'Kramer'),(2,'Elaine'),(3,'George'),(4,'Newman')]
Namun, ini bukan solusi yang paling efisien. Mari kita gunakan enumerate() untuk membuatnya lebih efisien.
Latihan ini adalah bagian dari kursus
Menulis Kode Python yang Efisien
Petunjuk latihan
- Alih-alih menggunakan
for i in range(len(names)), perbarui for loop untuk menggunakanisebagai variabel indeks dannamesebagai variabel iterator, serta gunakanenumerate(). - Tulis ulang for loop sebelumnya dengan menggunakan
enumerate()dan list comprehension untuk membuat daftar baru,indexed_names_comp. - Buat daftar lain (
indexed_names_unpack) dengan menggunakan karakter bintang (*) untuk membongkar enumerate object yang dihasilkan dari penggunaanenumerate()padanames. Kali ini, mulai indeks untukenumerate()dari satu, bukan nol.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Rewrite the for loop to use enumerate
indexed_names = []
for ____,_____ in ____(names):
index_name = (i,name)
indexed_names.append(index_name)
print(indexed_names)
# Rewrite the above for loop using list comprehension
indexed_names_comp = [(____,____) for i,name in ____(names)]
print(indexed_names_comp)
# Unpack an enumerate object with a starting index of one
indexed_names_unpack = [____(names, ____)]
print(indexed_names_unpack)