MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Alih-alih menggunakan for i in range(len(names)), perbarui for loop untuk menggunakan i sebagai variabel indeks dan name sebagai variabel iterator, serta gunakan enumerate().
  • 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 penggunaan enumerate() pada names. Kali ini, mulai indeks untuk enumerate() 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)
Edit dan Jalankan Kode