Python — Hazır Fonksiyonlar
Map, Reduce, Filter, Zip
Python’ da input(), print() gibi diğer işlevler hariç, temelde 4 hazır fonksiyon vardır. Daha öncesinde başkaları tarafından kodlanmışlardır. Programcıya bunları kullanırken parametrelerini vermek kalır. Bu fonksiyonlar şunlardır:
- map fonksiyonu
- reduce fonksiyonu
- filter fonksiyonu
- zip fonksiyonu
map(fonksiyon, veri):
Türkçe anlamı haritalamak demektir. Yaptığı iş şudur: herhangi bir fonksiyonu, belli verilere, bir bir uygular. Aldığı parametreler: fonksiyon, veri.
Örnek:
a = [3, 6, 88, 23, 75]def b(c):
return c + 2
d = map(b, a)
print(list(a))#çıktı:
#[4, 7, 89, 24, 76]
Açıklama:
Sonucu ekrana yazdırırken liste veri tipine dönüştürmek zorunda kaldım. Eğer dönüştürmeseydim map nesnesini ekrana yazdıracaktı. Belirtilen fonksiyonu, verilen verilere uygular.
reduce():
Türkçe anlamı azaltmak demektir. Parametre olarak verilen veri yapısına, belirtilen fonksiyonu uygularken sonuçları biriktirir. Yani verilere belirtilen fonksiyonu uygulayarak, verileri tek bir veri haline getiriyor. Verileri azaltıyor…
Örnek:
from functools import reduce
a = [3, 6, 88, 23, 75]def b(c, ş):
return c * ş
j = reduce(b, a)
print(j)#çıktı:
#2732400
Açıklama:
a ismindeki değişkenin sakladığı veri yapısındaki iki veriyi aldı. b ismindeki fonksiyona bunları parametre olarak verdi. Fonksiyon emrettiğim işlemi yaptı. Emrettiğim işlem: aldığı iki veriyi çarpmak. Daha sonra bulduğu sonucu bana döndürmek. reduce fonksiyonu, döndürülen sonucu sakladı ve bu sefer, b ismindeki fonksiyona, veri yapsındaki 3. veriyle, sakladığı bu veriyi gönderdi. bu işlemi a ismindeki değişkenin sakladığı veri yapısında veri kalmayana dek yaptı. Nihayetinde program sonlandı ve bulunan son sonuç ekrana yazıldı. Belirtilen fonksiyonu, verilen verilere uygular ve verileri tek bir veride toplar.
filter():
Türkçesi filtre demektir. Belirtilen fonksiyonu, verilen verilere uygular fakat belirtilen fonksiyon yalnızca mantık cebrinden veri döndürmelidir. Yukarıdaki diğer fonksiyonlardan farkı budur: kendisine parametre olarak verilen fonksiyon mantıksal değer döndürmelidir.
Örnek:
q = range(100)def k(ü):
i = 2
if ü ==2:
return True
elif ü<2:
return False
else:
while(i<ü):
if ü%i==0:
return False
i +=1
return True
w = filter(k,q)
print(list(w))#çıktı:
#[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
Açıklama:
Belirtilen fonksiyonu, verilen verilere uygular. Belirtilen fonksiyonu, verilen verilere uygularken verileri filtreler. Bunun için de fonksiyona şart koşar: fonksiyon mantık cebrinden değer döndürmeli!
zip():
Türkçesi fermuar demektir. Parametre olarak veri alır, fonksiyon almaz. Yaptığı iş: verileri birleştirmek.
Örnek:
eşya = ["kalem","tarak","pet şişe"]
g = [30,24,29,40,39]sonuc = list(zip(eşya,g))
print(sonuc)#çıktı:
#[('kalem', 30), ('tarak', 24), ('pet şişe', 29)]
Açıklama:
Örnekte, zip fonksiyonu, veri sayısı daha az olan liste kadar çalıştı.