BaşlayınÜcretsiz Başlayın

Yerleşik pratik: enumerate()

Bu egzersizde, Python'un yerleşik enumerate() fonksiyonunu kullanmayı pratik yapacaksın. Bu fonksiyon, indeksli bir liste elde etmek için kullanışlıdır. Örneğin, ev sahipliği yaptığın bir partide gelen kişilerin bir listesinin olduğunu varsayalım. Liste geliş sırasına göre sıralanmış (Jerry ilk gelen, ardından Kramer, vb.):

names = ['Jerry', 'Kramer', 'Elaine', 'George', 'Newman']

Bir kişinin geliş sırasını temsil eden bir indeks eklemek istersen, aşağıdaki for döngüsünü kullanabilirdin:

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')]

Ama bu en verimli çözüm değil. Bunu daha verimli hale getirmek için enumerate() nasıl kullanılır, birlikte keşfedelim.

Bu egzersiz

Verimli Python Kodu Yazmak

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • for i in range(len(names)) kullanmak yerine, for döngüsünü enumerate() kullanarak güncelle ve indeks değişkeni olarak i, yineleyici değişken olarak name kullan.
  • Önceki for döngüsünü enumerate() ve liste üreteci kullanarak yeniden yaz ve yeni bir liste olan indexed_names_comp oluştur.
  • names üzerinde enumerate() kullanarak oluşturulan enumerate nesnesini yıldız (*) ile açarak (unpack) başka bir liste (indexed_names_unpack) oluştur. Bu sefer, enumerate() için başlangıç indeksini sıfır yerine birden başlat.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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)
Kodu Düzenle ve Çalıştır