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ırEgzersiz talimatları
for i in range(len(names))kullanmak yerine, for döngüsünüenumerate()kullanarak güncelle ve indeks değişkeni olaraki, yineleyici değişken olaraknamekullan.- Önceki for döngüsünü
enumerate()ve liste üreteci kullanarak yeniden yaz ve yeni bir liste olanindexed_names_compoluştur. namesüzerindeenumerate()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)