Bir listeyi döngüyle gezerken elemanların sıra numarasına da ihtiyaç duyuyorsan, ayrı bir sayaç değişkeni tutmana gerek yok. enumerate her elemanı numarasıyla birlikte verir.
Kod
urunler = ["Kalem", "Defter", "Silgi"]for sira, urun in enumerate(urunler, start=1): print(f"{sira}. {urun}")# 1. Kalem# 2. Defter# 3. Silgi
Bu satır nasıl çalışıyor?
enumerate(urunler) listedeki her elemanı bir sıra numarasıyla eşleştirir: (0, "Kalem"), (1, "Defter"), (2, "Silgi"). for sira, urun in ... yazınca bu çiftler, takas kod kartında gördüğümüz paket açma mantığıyla iki değişkene dağıtılır.
Python saymaya 0’dan başlar. start=1 yazarak numaraların 1’den başlamasını sağladık; ekrana yazdırılacak listeler için genelde bunu istersin.
enumerate olmadan aynı iş şöyle yapılır:
sira = 0for urun in urunler: sira += 1 print(f"{sira}. {urun}")
Çalışır, ama sayacı artırmayı unutmak ya da yanlış yerde artırmak çok kolay. enumerate bu sorumluluğu senden alıyor.
Bir örnek daha: hangi sıradaki eleman?
Numara, bir elemanın listede nerede olduğunu söylemek istediğinde de işe yarar:
notlar = [70, 85, 40, 90]for sira, puan in enumerate(notlar, start=1): if puan < 50: print(f"{sira}. öğrenci kaldı ({puan})")# 3. öğrenci kaldı (40)
Buradaki if‘i Python Dersi 5’te gördük; for döngüsünü ise Python Dersi 6’da ayrıntılı işleyeceğiz.
Dikkat
for satırında iki değişken yazmayı unutursan hata almazsın ama çıktı beklemediğin gibi olur:
for eleman in enumerate(urunler): print(eleman)# (0, 'Kalem')# (1, 'Defter')# (2, 'Silgi')
eleman her seferinde numara ve değerden oluşan bir demet (tuple). Numarayı ve değeri ayrı ayrı kullanmak istiyorsan for sira, urun in ... şeklinde iki isim ver.

Bir yanıt yazın