Kod Kartı: enumerate: Sayaç Tutmayı Bırak

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 = 0
for 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.


Hatice Özbolat | Teknoloji ve AI Rehberi sitesinden daha fazla şey keşfedin

Son gönderilerin e-postanıza gönderilmesi için abone olun.

Comments

Bir yanıt yazın