Python'da Iteration (Yineleme) Ayrıntılı Açıklama
Iteration (yineleme), Python'da koleksiyonlar (listeler, demetler, sözlükler vb.) üzerinde döngü yapma işlemidir. Python'da iteration, __iter__() ve __next__() metodlarıyla çalışan bir protokole dayanır.
Temel Iteration Kavramları
1. Iterable (Yinelenebilir Nesne)
Üzerinde iteration yapılabilen nesnelerdir (liste, tuple, string, dict vb.)
__iter__()metodunu implemente ederlerÖrnek:
my_list = [1, 2, 3]bir iterable'dır
2. Iterator
Iteration durumunu takip eden nesnelerdir
__next__()metodunu implemente ederlerHer
__next__()çağrısında bir sonraki öğeyi döndürürÖğeler tükendiğinde
StopIterationhatası fırlatır
Örneklerle Iteration
Basit Iteration Örneği
my_list = [1, 2, 3]
for item in my_list:
print(item)
# Çıktı:
# 1
# 2
# 3Iterator Oluşturma
my_list = [1, 2, 3]
my_iter = iter(my_list) # my_list.__iter__()
print(next(my_iter)) # 1
print(next(my_iter)) # 2
print(next(my_iter)) # 3
print(next(my_iter)) # StopIteration hatasıKendi Iterable Sınıfımızı Oluşturma
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.start >= self.end:
raise StopIteration
current = self.start
self.start += 1
return current
for num in MyRange(1, 5):
print(num)
# Çıktı:
# 1
# 2
# 3
# 4Python'daki Yaygın Iteration Araçları
1. enumerate()
for index, value in enumerate(['a', 'b', 'c']):
print(index, value)
# Çıktı:
# 0 a
# 1 b
# 2 c2. zip()
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name} is {age} years old")3. reversed()
for i in reversed(range(1, 5)):
print(i)
# Çıktı:
# 4
# 3
# 2
# 1Generator'lar ve Iteration
Generator'lar, iterator oluşturmanın kolay bir yoludur:
def my_generator(n):
for i in range(n):
yield i * 2
for x in my_generator(5):
print(x)
# Çıktı:
# 0
# 2
# 4
# 6
# 8Dictionary'lerde Iteration
my_dict = {'a': 1, 'b': 2, 'c': 3}
# Key'ler üzerinde iteration
for key in my_dict:
print(key)
# Value'lar üzerinde iteration
for value in my_dict.values():
print(value)
# Key-value çiftleri üzerinde iteration
for key, value in my_dict.items():
print(key, value)Iteration, Python'da veri işlemenin temel taşlarından biridir ve veri yapıları üzerinde etkili bir şekilde çalışmayı sağlar.
Hiç yorum yok:
Yorum Gönder