12 - Yüksek Seviye Fonksiyonlar ve Liste Üreteçleri
2024
Bu bölümde, Python’da iterable’lar (listeler, demetler, stringler vb.) üzerinde işlemler yapmak için kullanılan map
, filter
, zip
ve reduce
gibi yüksek seviye fonksiyonları ve liste üreteçleri (list comprehensions) yapısını öğreneceğiz.
Bu fonksiyonlar, kodunuzu daha öz, okunabilir ve verimli hale getirmenize yardımcı olabilir.
range
nesneleri yinelenebilir nesne örnekleridir.for
döngüsü ile bu nesnelerin elemanları üzerinde dolaşabiliriz.Sözdizimi:
lambda
: Lambda fonksiyonu tanımlamak için kullanılır.argümanlar
: Fonksiyonun alacağı argümanlar (virgülle ayrılmış).ifade
: Fonksiyonun döndüreceği değeri hesaplayan ifade.Örnekler:
map()
Fonksiyonu: Her Elemana Aynı İşlemi Uygulamap()
fonksiyonu, bir fonksiyonu bir yinelenebilir nesnenin her elemanına uygular ve sonuçları yeni bir map nesnesi olarak döndürür.Sözdizimi:
fonksiyon
: Yinelenebilir nesnenin her elemanına uygulanacak fonksiyon.iterable
: İşlem yapılacak yinelenebilir nesne.Örnekler (lambda fonksiyonu kullanmadan):
Örnekler (lambda fonksiyonu ile):
filter()
Fonksiyonu: Elemanları Filtrelefilter()
fonksiyonu, bir fonksiyonu bir yinelenebilir nesnenin her elemanına uygular ve fonksiyonun True
döndürdüğü elemanlardan oluşan yeni bir filter nesnesi döndürür.Sözdizimi:
fonksiyon
: Yinelenebilir nesnenin her elemanına uygulanacak ve True
veya False
döndüren fonksiyon.iterable
: İşlem yapılacak yinelenebilir nesne.Örnekler (lambda fonksiyonu kullanmadan):
Örnekler (lambda fonksiyonu ile):
zip()
Fonksiyonu: Yinelenebilir Nesneleri Birleştirzip()
fonksiyonu, iki veya daha fazla yinelenebilir nesneyi birleştirerek, elemanlarını tuple’lar halinde gruplandırır ve yeni bir zip nesnesi döndürür.Sözdizimi:
iterable1, iterable2, ...
: Birleştirilecek yinelenebilir nesneler.Örnekler:
isimler = ["Ahmet", "Mehmet", "Ayşe"]
yaslar = [25, 30, 22]
# İki listeyi birleştirerek tuple'lar oluştur
birlesim = list(zip(isimler, yaslar))
print(birlesim) # Çıktı: [('Ahmet', 25), ('Mehmet', 30), ('Ayşe', 22)]
# Sözlük oluşturma
sozluk = dict(zip(isimler, yaslar))
print(sozluk) # Çıktı: {'Ahmet': 25, 'Mehmet': 30, 'Ayşe': 22}
reduce()
Fonksiyonu: Tek Bir Sonuç Üretreduce()
fonksiyonu, bir fonksiyonu bir yinelenebilir nesnenin elemanlarına soldan sağa doğru ardışık olarak uygular ve tek bir sonuç değeri döndürür.functools
modülünden içe aktarılması gerekir.Sözdizimi:
fonksiyon
: İki argüman alan ve tek bir sonuç döndüren fonksiyon.iterable
: İşlem yapılacak yinelenebilir nesne.başlangıç_değeri
: İsteğe bağlı başlangıç değeri.Örnekler (lambda kullanmadan):
Örnekler (lambda ile):
for
döngüsü ve koşullu ifadeler kullanarak yeni listeler oluşturabilirsiniz.Sözdizimi:
ifade
: Yeni listeye eklenecek değer.eleman
: Iterable’ın her elemanı.iterable
: İşlem yapılacak iterable.koşul
: İsteğe bağlı bir koşul.Liste üreteçlerinin nasıl çalıştığını anlamak için, öncelikle liste üreteci ifadesini bir döngü ve koşullu ifade kullanarak nasıl yazabileceğimize bakalım:
sayilar = [1, 2, 3, 4, 5]
kareler = []
for x in sayilar:
kareler.append(x * x)
print(kareler) # Çıktı: [1, 4, 9, 16, 25]
sayilar
listesindeki her sayının karesini alır ve kareler
listesine ekler.Daha Fazla Örnek:
map
kullanın - lambda ile ve lambda olmadan).filter
kullanın - lambda ile ve lambda olmadan).zip
kullanın).reduce
kullanın - lambda ile ve lambda olmadan).