reduce Fonksiyonu # 2 - Python Dersleri (Tutorials)

in #palnet5 years ago

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:

Ç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 :

Uygulama ile alakalı ayrıntılar için bir önceki 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 :

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

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 :

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

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

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


Posted via Marlians.com
Sort:  

You got a 36.36% upvote from @joeparys! Thank you for your support of our services. To continue your support, please follow and delegate Steem power to @joeparys for daily steem and steem dollar payouts!

You got a 67.11% upvote from @brupvoter courtesy of @elektroyazilim!

You got a 50.00% upvote from @bid4joy courtesy of @elektroyazilim!

You got a 95.36% upvote from @minnowvotes courtesy of @elektroyazilim!

You got a 25.00% upvote from @whalepromobot courtesy of @elektroyazilim!

You got a 96.64% upvote from @luckyvotes courtesy of @elektroyazilim!

Coin Marketplace

STEEM 0.32
TRX 0.11
JST 0.034
BTC 66761.99
ETH 3256.83
USDT 1.00
SBD 4.27