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, kursun bir parçasıdır

Verimli Python Kodu Yazmak

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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