Merhaba,
enumerate
aslında bir fonksiyon değil, bir sınıftır ve enumerate()
diye çağırınca bu sınıfın yapıcı fonksiyonu olan __init__
metodu çalıştırılır ve bir tane enumerate
nesnesi yaratılır. enumerate
nesnesi bir Iterator
'dür.
import collections
print(isinstance(enumerate([]), collections.Iterator))
Siz, enumerate("istihza")
yazınca da bir iterator
oluşturulur. Ve bir iterator
'de bulunan nesnelere erişmek için next
fonksiyonunu kullanabilirsiniz.
x = enumerate("istihza")
print(next(x))
Bu kod bize, (0, 'i')
çıktısını verecektir. next
fonksiyonunu x
için ikinci kez çağırdığımızda bu kez (1, s)
çıktısını alacağız.
enumerate("istihza")
nesnesinde yer alan elemanları şöyle listeleyebilirsiniz.
for i in enumerate("istihza"):
print(i)
Bu da bize aşağıdaki çıktıyı verecektir:
(0, 'i')
(1, 's')
(2, 't')
(3, 'i')
(4, 'h')
(5, 'z')
(6, 'a')
Sizin de dediğiniz gibi *
karakteri, yinelenebilir bir verinin elemanlarını açığa çıkarttığı için,
print(*enumerate("istihza"))
yazdığınızda, çıktı olarak (0, 'i') (1, 's') (2, 't') (3, 'i') (4, 'h') (5, 'z') (6, 'a')
ifadesini alırsınız.