Iteratorlar nedir?Iteratorlar aslında Pythonda çoğu yerde biz görmesek de kullanılır. Iteratorlar özellikle for döngülerinde , list comprehensionlarında, ve bir sonraki derste göreceğimiz generatorlarda karşımıza çıkar.Iteratorlar en genel anlamıyla üzerinde gezinilebilecek bir
objedir ve bu obje her seferinde bir tane eleman döner.Pythonda kendisinden iterator oluşturabileceğimiz her
obje iterable bir objedir.. Örneğin, demetlerden,listelerden ve stringlerden oluşturduğumuz bütün objeler
iterable bir objedir.
Bir objenin
iterable olması için hazır metodlar olan __iter()__ ve __next()__ metodlarını mutlaka tanımlaması gerekir.
Iterator oluşturmaBir iterator objesini ,
iterable bir objeden (liste,demet,string vs) oluşturmak için Pythonda
iter() fonksiyonunu kullanıyoruz ve bu objenin bir sonraki elemanını almak için
next() fonksiyonu kullanıyoruz.
Kod:
liste = [1,2,3,4,5]
print(dir(liste)) # __iter__ metodu tanımlı olduğu için listeler üzerinde iterator oluşturabiliriz.
"""
Çıktı
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__delitem__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__gt__',
'__hash__',
'__iadd__',
'__imul__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__reversed__',
'__rmul__',
'__setattr__',
'__setitem__',
'__sizeof__',
'__str__',
'__subclasshook__',
'append',
'clear',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']
"""
Kod:
liste = [1,2,3,4,5]
print(dir(liste)) # __iter__ metodu tanımlı olduğu için listeler üzerinde iterator oluşturabiliriz.
"""
Çıktı
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__delitem__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__gt__',
'__hash__',
'__iadd__',
'__imul__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__reversed__',
'__rmul__',
'__setattr__',
'__setitem__',
'__sizeof__',
'__str__',
'__subclasshook__',
'append',
'clear',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']
"""
Kod:
liste = [1,2,3,4,5]
print(dir(liste)) # __iter__ metodu tanımlı olduğu için listeler üzerinde iterator oluşturabiliriz.
"""
Çıktı
['__add__',
'__class__',
'__contains__',
'__delattr__',
'__delitem__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__getitem__',
'__gt__',
'__hash__',
'__iadd__',
'__imul__',
'__init__',
'__init_subclass__',
'__iter__',
'__le__',
'__len__',
'__lt__',
'__mul__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__reversed__',
'__rmul__',
'__setattr__',
'__setitem__',
'__sizeof__',
'__str__',
'__subclasshook__',
'append',
'clear',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']
"""
Kod:
liste = [1,2,3,4,5]
for i in liste:
print(i)
"""
Çıktı
1
2
3
4
5
"""