Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mustafamuratcoskun
GitHub Repository: mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Python-Programlama
Path: blob/master/Pythondaki Gömülü Fonksiyonlar/Reduce Fonksiyonu.ipynb
765 views
Kernel: Python 3

Reduce Fonksiyonu

Bu konuda bir diğer gömülü fonksiyonumuz olan reduce fonksiyonunu öğrenmeye çalışacağız.

reduce(function, iterasyon yapılabilen veritipi(liste vb.))

reduce() fonksiyonu değer olarak aldığı fonksiyonu soldan başlayarak listenin ilk 2 elemanına uygular ve daha sonra çıkan sonucu listenin 3. elemanına uygular ve bu şekilde devam ederek liste bitince bir tane değer döner. Anlamak için örneğimize ve görselimize bakalım.

from functools import reduce # reduce fonksiyonu son sürümlerde functools modülüne taşındı.
reduce(lambda x,y : x + y , [12,18,20,10])
60

Burada sonuç neden 60 çıkıyor bakalım. İlk önce 12 ve 18 değeri fonksiyona argüman olarak gidiyor ve toplanarak sonuç 30 çıkıyor. Daha sonra 30 değeriyle bir sonraki eleman olan 20 değeri toplanıyor ve sonuç 50 çıkıyor. En son 50 değeriyle listenin en son elemanı olan 10 değeri toplanıyor ve liste bittiği için sonuç 60 çıkıyor. Bunu aşağıdaki resimde görebiliriz.

from IPython.display import Image Image(filename='reduce.jpg')
Image in a Jupyter notebook

Birkaç örnek daha yapalım.

# Bakın 5'in faktöriyelini bulduk. reduce(lambda x,y : x * y , [1,2,3,4,5])
120
reduce(lambda x,y : x * y , [3,4,5,10])
600
# max fonksiyonu() max([1,2,3,4,5,6])
6
# reduce ile max fonksiyonu def maksimum(x,y): if (x > y): return x else: return y reduce(maksimum, [-2,1,100,35,32])
100

İşte reduce fonksiyonu tamamıyla bu kadar! Bir sonraki derste başka bir gömülü fonksiyonu öğrenmeye başlayacağız.