Ders-17: Python Map Fonksiyonu

Python Map Fonksiyonu

Map () fonksiyonu, yinelenebilir her öğe için belirtilen bir işlevi yürütür. Öğe işleve bir parametre olarak gönderilir.

Kullanımı:

Python Map Fonksiyonu : map(fonksiyonyinelenen)

Parametre Değerleri:

ParameterDescription
fonksiyonHer öğe için yürütülecek işlev.
yinelenenBir dizi, koleksiyon veya yineleyici nesne. İstediğiniz kadar iterables gönderebilirsiniz, sadece işlevin her iterable için bir parametreye sahip olduğundan emin olun.

Diyelim ki elimizde şöyle bir liste var:
liste = [1, 4, 5, 4, 2, 9, 10]

Amacımız bu liste içindeki her öğenin karesini hesaplamak. Bunun için şöyle bir yol izleyebiliriz:

for i in liste:
     print(i ** 2)

1
16
25
16
4
81
100

Böylece, istediğimiz gibi, bütün öğelerin karesini bulmuş olduk. Bu tür bir işlemi yapmanın bir başka yolu da map() adlı bir gömülü fonksiyondan yararlanmaktır. Dikkatlice bakın:

>>> def karesi(n):
...     return n ** 2
...

Burada bir n sayısının karesini hesaplayan bir fonksiyon tanımladık. Şimdi bu fonksiyonu liste listesinin bütün öğeleri üzerine uygulayacağız:

>>> list(map(karesi, liste))

[1, 16, 25, 16, 4, 81, 100]

Örnek-1 :

def myfunc(a, b):
  return a + b

x = map(myfunc, ('apple', 'banana', 'cherry'), ('orange', 'lemon', 'pineapple'))


print(list(x))

EKRAN ÇIKTISI:
['appleorange', 'bananalemon', 'cherrypineapple']

Bu örnekte myfunc isimli fonksiyonun 2 parametresi olduğu için map içerisinde iterables kısmında 2 ayrı liste vardır. Bu listelerin birisi a, diğeri ise b ye atanır ve fonksiyona gider. Sonuç olarak bu iki değer fonksiyon içerisine gidip toplanır. String değerler olduğu için yanyana eklenerek ayrı bir listeye aktarılır.

Örnek-2:

def toplama(n): 
    return n + n 
  
no= (1, 2, 3, 4) 
sonuç= map(toplama, no) 
print(list(sonuç))

EKRAN ÇIKTISI:
[2, 4, 6, 8]

Bu örnekte no bir tuple yani demet ve içerisinde 4 adet sayı var. map(toplama, no) fonksiyonu herbir no tuple elemanı için toplama fonksiyonuna gider ve işlem yapar. Sonucu ekrana liste olarak yazdırırız.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir