reduce Fonksiyonu # 2 - Python Dersleri (Tutorials)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@elektroyazilim·
0.000 HBD
reduce Fonksiyonu # 2 - Python Dersleri (Tutorials)
![yeni.jpg](https://cdn.steemitimages.com/DQmVqEHkajCZyuMfc1Nn7AfRj9QwYTddNmLcySkpi48PD1S/yeni.jpg) 

Merhabalar

Python programlama derslerinin bu dersi bir önceki dersin devamı şeklinde olacaktır. Bir önceki dersimizde Python'daki gömülü fonksiyonlardan biri olan _reduce()_ fonksiyonunu görmüştük..

Yapı olarak _reduce()_ fonksiyonu _map()_ fonksiyonuna oldukça benzese de çalışma mantığı olarak oldukça farklıydı.

_reduce()_ fonksiyonunun genel yapısı aşağıdaki gibidir:

![](https://cdn.steemitimages.com/DQmUGFGxpYA49hbxBYxVbrVVAmyhEjXiPTBqz8o6gWnY4LY/image.png)

Çalışma mantığı ise :

>_reduce_ fonksiyonu parametre olarak aldığı fonksiyona parametre olarak aldığı listeden ilk iki elemanı fonksiyon parametresi olarak gönderir. Sonrasında fonksiyondan dönen sonuç ile beraber listenin bir sonraki elemanını tekrar aynı fonksiyona parametre olarak gönderir. Bu süreç listede eleman kalmayana kadar devam eder.

Uygulaması ise aşağıdaki gibiydi :

![](https://cdn.steemitimages.com/DQmUoiLLQHBVz7tx9pfGLQc6SautE8rVGApp5w9k35daM1x/image.png)

Uygulama ile alakalı ayrıntılar için bir [önceki](https://steemit.com/palnet/@elektroyazilim/reduce-fonksiyonu-1-python-dersleri-tutorials) derse bakabilirsiniz.

_reduce()_ fonksiyonu yığın mantığı ile çalışan bir fonksiyon. İlk işlemi yaptıktan sonra her defasında sonucu listenin diğer elemanlarıyla tekrardan ele alıyor.

## Faktoriyel Uygulaması

_reduce()_ fonksiyonunun lamda ile kullanımına bakalım :

![](https://cdn.steemitimages.com/DQmeBb2FyvmZ8R6emvux7w5mGddVW3zFvxqDzSx7qYVCuEB/image.png)

Örneğimizde _lambda_ anahtar kelimesi kullanılarak bir fonksiyon tanımlanmış. Aslında bu fonksiyonun şundan herhangi bir farkı bulunmuyor :

![](https://cdn.steemitimages.com/DQmaD2Tvqa9uWm3xpLytgrBGevpF2HLaWVpb6R4aHDuz5VK/image.png)

Sonrasında _reduce()_ fonksiyonu ikinci parametre olarak bir sayı dizisi alıyor.

Şimdi nasıl çalışacağı üzerine konuşalım. İlk olarak a ve b parametrelerine sırasıyla 1 ve 2 değerleri atanıp fonksiyona gönderilecek ve sonuç a * b yani 1*2 = 2 olarak dönecektir. 

Sonrasında 2 değeri ilk parametre olan a'nın yerini alacak ve b için listeden 3.eleman olan 3 değeri alınacak. Sonrasında bu değerler de tekrar fonksiyona gönderilip, a * b = 2 * 3 = 6 olarak dönecektir.

Süreç bu şekilde liste elemanları bitene kadar devam edecektir. Nihayetinde yapılan

> 1 *2 * 3 *4 *5 *6  = 6!

6 sayısının faktoriyelini almaktır. Bu şekilde düşündüğümüzde yapı olarak _recursive_ fonksiyonları aklımıza getiriyor. 

## Max Bulma Uygulaması

Bir liste içerisindeki maximum elemanı bulan bir uygulama yapalım. 

İlk olarak basit en temel haliyle iki sayının maximumunu bulan bir fonksiyon hazırlayalım :

![](https://cdn.steemitimages.com/DQmQ26JSNZzzFFG8UZAgarFghBeZQDACTm8a84Hwu8KYxii/image.png)

Şimdi de bu fonksiyonu _reduce()_ fonksiyonu içerisine alalım :

![](https://cdn.steemitimages.com/DQmVCwLxwj5TeptMzT9i2LoT8dLgSkfaJrUj81AmHNUEXg2/image.png)

Görüldüğü gibi tek hamleyle tüm liste içerisindeki sayılar kontrol edilip maximum sayı bulundu. 






Şimdilik bu kadar.

Umarım faydalı bir çalışma olmuştur.

Teşekkürler.

![yesilayrca.png](https://cdn.steemitimages.com/DQmYZw2bhUomeivJwQ8CiLaTzXTbJPLd1PsSGdcoEE1DfKP/yesilayrca.png)

Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me

<hr><center><sub>Posted via <a href="https://www.marlians.com/">Marlians.com</a></sub></center>
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,