Python Enumerate Kullanımı

Oğuzhan Çelikarslan
3 min readNov 22, 2020

enumerate() methodu itere edilebilir bir objenin(list, string, tuple vb) itemlarına birer index numarası verir.

Enumerate Methodu

Enumerate methodu iki parametre alır. Birinci parametre itere edilecek objedir yani bir iterabledır. Örneğin bir list, tuple, yada string gibi. İkinci parametre ise start parametresidir ve indexlenmenin kaçtan başlayacağını belirler. Bu parametre opsiyoneldir, istersek kullanmayabiliriz ama bu durumda index 0'dan başlayacaktır.

enumerate(iterable, start=0)

Bir örnek yapalım ve bu laf kalabalığını biraz anlamlaştıralım.

Size isimler adında bir liste verdiğimi varsayalım. Bu listenin içerisinde çeşitli isimler olsun örneğin Oğuzhan, Enes ve Selim.

isimler = [‘Oğuzhan’, ‘Enes’, ‘Selim']

Gördüğümüz gibi bir listemiz var ve bu listenin içerisinde elemanlar var. Eğer ki ben sizlerden ekrana, aşağıda ki gibi bir çıktı yapmanızı isteseydim, nasıl yapabilirdik yollarımıza bakalım. 🤔

1- Oğuzhan
2- Enes
3- Selim

Yukarıda ki çıktıyı aşağıda ki kod bloğu ile alabilirsiniz.

Bu kod bloğunda, for döngüsünün dışında bir counter(sayaç) tanımladık. Daha sonra bu counterın değerini her döngü döndüğünde bir arttırdık. Bu sayede aslında listenin sıra numaralarını yazdık.

Peki bunu nasıl daha güzel bir şekilde yapabiliriz? Tabi ki de enumerate ile!

Gerçekten kodun okunabilirliği çok daha güzel! Bu koda baktığımızda enumerate methodunun birinci parametresine itere edilecek objeyi verdik. Akabinde start opsiyonel parametresini kullanara, isimler listesini indexlerken birinci sırada ki elemanın index numarası birden başlasın dedim.

Eğer ki print(enumerate(isimler, start=1)) kodunu çalıştırırsanız ve enumeratein ne yaptığını görmek için yazdırırsanız, hüsrana uğrayabilirsiniz çünkü geriye bir enumerate objesi dönecektir. Beklediğimiz şekilde bir liste ve bunun index numaraları dönmeyecektir.

Enumerate nasıl indexliyor?

print(list(enumerate(isimler)))

Konsolunuzda yukarıda ki kodu çalıştırdığınızda karşınıza bir liste ve bu listenin içerisinde tuplelar göreceksiniz. Peki ne oldu burada?

Enumerate, listenin içerisinde ki isimleri aldı daha sonra yanlarına bir index numarası koydu ve bunları bir tuple haline getirip dedi ki bu tuple’ın ilk elemanı index numarası ikinci elemanı ise elemanın ta kendisi olsun.

[(0, 'Oğuzhan'), (1, 'Enes'), (2, 'Selim')]

Bunun ise bize for döngüsünde harika bir avantajı oldu!

for index, isim in enumerate(isimler, start=1):

For döngüsünün sağ tarafında ki kısım içi tuple dolu bir liste döndürdüğüne göre her döngüde sol taraf bir tuple olacaktır! Biz hem index numarasını hemde bu değeri almak istediğimiz için forun hemen sağına bir adet index bir adet de isim adında değişken tanımladık. Bu sayede her for döngüsü döndüğünde index değişkeni üzerinde o dönen tupleın index numarasını, isim değişkeni üzerinden de tupleın içinde ki değeri alabiliyoruz.

Tuple ve String ile Enumerate Kullanımı

Sonuç olarak Tuple da String de liste gibi bir iterable olduğu için kullanım şekli fark etmeksizin enumeratein birinci parametresine getirilebilirler.

1 - E
2 - F
3 - E

Yukarıda ki çıktıyı enumerate ile gerçekleştirelim.

isim = 'EFE' 
for index, isim in enumerate(isim, start=1):
print(index, isim)

1- isim adında bir değişken tanımladık.

2- enumerate methodu ile ilk index 1 olacak şekilde teker teker her harfi indexledik.

3- for döngüsünde index, isim yaparak tupleı parçalara böldük.

4- print fonksiyonu ile index ve isim değerlerini ekrana bastırdık.

Kısacası enumerate ile itere edilebilir bir objeyi indexliyoruz. Daha önce de bahsettiğim gibi enumerate geriye enumerate tipinde bir obje döndürüyor. Bu objeyi tuple(<enumerate>) yada list(<enumerate>) şeklinde tuple yada list veri yapısına çevirebilirsiniz.

--

--

Oğuzhan Çelikarslan

Python enthusiast who focuses on the problem, break down it, and solves it. https://oguzhann.net