17. Map, Filter ve Reduce

Map, filter ve reduce programlamaya yönelik fonksiyonel bir yaklaşımı kolaylaştıran üç fonksiyondur. Bu bölüm bu fonksiyonlara ayrılmıştır. 

17.1. Map

Bir listedeki tüm öeğelere bir fonksiyonu uygular. Sözdizimi:

map(fonksiyon ismi, liste)

şeklindedir. Bu fonksiyonun yararını anlamak için öncelikle bir problem belirleyelim ve klasik yaklaşımla probleme çözüm bulalım.

Map aynı kodu çok daha güzel ve sade şekilde yazmamıza olanak sağlar.

Yukarıdaki çıktı ile aynı çıktıyı üretir. Çoğu zaman map ile lambda birlikte kullanılır, ancak bir fonksiyonu listesi bir liste yerine kullanabiliriz. Örneğin,

17.2. Filter

Filter bir fonksiyondan True dönen elementler için bir liste oluşturur. Örneğin,

Filtre bir for döngüsünü andırır, ancak yerleşik bir fonksiyondur ve çok daha hızlıdır.

17.3. Reduce

Reduce bir liste üzerine bazı hesaplamaları gerçekleştirmek ve bir sonuç döndürmek için çok kullanışlı bir fonksiyondur. Bir listedeki öğelerin çarpımı döndüren bir kod yazalım. Klasik bir programcı aşağıdaki şekilde kod yazar.

Bir döngü ile listeyi dolaştık ve sonucu sonuç adında bir değişkene aktardık. Şimdi reduce kullanarak aynı işlemi yapalım.

Öncelikle reduce fonksiyonunu import ettik. lambda ile listenin tüm elemanları çarpılıp sonuç döndürülüyor.