map()Bu fonksiyon, liste veya Tuple içerisindeki tüm elemanlara tek bir değiştirme/dönüştürme işlemi uygulanacağı zaman kullanılır. Örneklerle daha iyi anlayacaksınız.

Ana yapımız bu şekilde: print(list(map()))
Sonrasında map() içerisine girip iki adet argüman vermemiz gerekiyor. Bu argümanlardan biri bir fonksiyon, diğeri ise bir liste olmalıdır. Bu yüzden ben map() içerisine bir lambda fonksiyonu koyduktan sonra bir virgül atıyorum ve listemin adını veriyorum. Son yapımız şu şekilde: print(list(map(lambda name: name.upper(), names)))
Başka bir örnek daha yapalım.

Bu sefer, listedeki her elemanı kendisiyle çarptık ve bunu bir liste olarak aldık. Lütfen inceleyin. map() fonksiyonu iki argüman alır; birincisi, yapılacak işlemi ifade ederken ikincisi, işlemin yapılacağı yeri ifade eder.
Bu fonksiyon oldukça önemli bir fonksiyon olduğu için burada biraz daha detaylı anlatmakta fayda var. map() fonksiyonu, az önce de gördüğünüz üzere bir adet fonksiyon ve o fonksiyonun işleme alacağı bir liste alıyor. Bu noktada lambda'nın da bir fonksiyon olduğunu biliyorsunuz. Buna göre, lambda yerine normal bir fonksiyon da yazabiliyor olmamız gerekiyor.
Bunu pratik etmek için bir listedeki elemanların karesini alan ve bunu başka bir listeye atayan bir kod yazalım.

Dikkat edelim; listemizin adı myList ve içerisinde 0'dan 9'a kadar olan sayılar mevcut. Bu noktada ben, def getSquare(number): şeklinde bir fonksiyon tanımladım ve return number ** 2 diyerek kare alma işlemini döndürdüm.
Sonrasında mainList isimli bir değişken belirledim ve karşılığına şunu yazdım: map(getSquare, myList). Bu noktada dikkat etmeniz gereken ilk şey, getSquare() fonksiyonun parantezlerinin olmayışıdır. Bunu kısaca açıklayalım.
Bir fonksiyonu çağırırken parantezlerle beraber çağırırsanız yani getSquare() derseniz, fonksiyonun döndürdüğü değeri çağırmış olursunuz. Ancak, yukarıdaki ekran görüntüsündeki gibi çağırma işlemini parantezler olmadan yaparsanız yani sade bir şekilde getSquare derseniz fonksiyonun kendisini çağırmış olursunuz. Şu an için bu kadarını bilmeniz ve fonksiyonlarımızı map() kullanırken bu şekilde çağırdığımızı bilmeniz gerekir. Bu konu hakkında detaylı bilgi için "İleri Düzey Fonksiyonlar | Bölüm 4" isimli blogu ziyaret edebilirsiniz.
Fonksiyonu çağırdıktan sonra işlemin yapılacağı listeyi de veriyoruz ve işimiz tamamlanıyor; bunu print(mainList) diyerek ekrana yazdırıyoruz. Dilerseniz bunu çalıştırıp ne olacağını görelim.

Dikkat ederseniz ekrana herhangi bir "elemanlarının karesi alınmış liste" gelmedi. Bunun yerine, mainList'in bir map objesi olduğunu söylüyor. Gerçekten de öyledir. Burada bir liste elde etmek için, blogun başında gördüğünüz gibi map(...) demek yerine list(map(...)) dememiz gerekir. Oradaki list() ifadesi, mainList değişkeninin bir listeye dönüşmesini sağlamaktadır. Bu değişikliği yapıp kodu tekrar çalıştıralım.

Çıktımız başarılı bir şekilde geldi. Artık mainList sıradan bir değişken değil, bir liste konumundadır. Bunun illa bir liste olmasına da gerek yoktur; bunu bir tuple olarak da saklayabilirsiniz. Görelim.

Gördüğünüz üzere çıktımız bir liste olarak değil, bir tuple olarak geldi.
filter()Bu fonksiyon ise adından da anlayabileceğiniz üzere verdiğiniz bir koşula göre filtreleme işlemi yapıyor. Bakalım.

Kullanımı aynen map() fonksiyonu gibidir. İki argüman alır; ilki fonksiyon yani yapılacak iş, ikincisi ise liste ismi yani işin yapılacağı yerdir.
Başka bir örnek daha yapalım ve az önceki listede bulunan elemanların çift sayı olup olmadıklarına bakalım.

Bu fonksiyon için map() fonksiyonunda anlattıklarım geçerlidir. Yani parametre olarak normal bir fonksiyon da verebilirsiniz. Bir örnek ile inceleyelim.

Listemiz yine aynı. Ancak, bu seferki fonksiyonuz çift sayıları bulmakla görevli bir fonksiyon. Sonrasında list(filter(evenNumbers, myList)) diyerek filtreleme işlemini yapıyoruz ve ekrana çift sayıların geldiğini görüyoruz.
Burada, yalnızca çift sayıların yazdırılmasının sebebi, True koşulunun False koşuluna göre üstün olmasıdır.
Yayınlanma Tarihi: 2022-12-21 11:56:12
Son Düzenleme Tarihi: 2023-02-04 21:41:45