Python'da Nesneleri Yinelemek için map Fonksiyonu
Diyelim ki sayıların karesini almak için bir square fonksiyonumuz var.
Ve elemanlarına bu fonksiyonu uygulamamız gereken bir liste var:
def square(num):
return num ** 2
lst = [2, 3, 6, 8, 15]
Python'da bu sorunu çözmek için özel bir map fonksiyonu kullanılabilir.
Bu fonksiyon, parametre olarak bir fonksiyon ve elemanlarına uygulanacak bir liste alır.
Örneği çözmek için map kullanalım:
res = map(square, lst)
print(res)
Her liste, karmaşık bir nesne gibi, Python'un sistem belleğinde çok yer kaplar. Bu nedenle kaynakları verimli kullanmak için kod çalıştıktan sonra yeni bir liste değil, özel bir yinelenebilir map nesnesi döndürülür:
<map object at 0x000001F16674BA00>
Şimdi bu nesneyi bir döngü ile gezelim:
for el in res:
print(el)
Sonuçta yeni listenin tüm elemanları yazdırılacaktır:
4
9
36
64
225
Map nesnesinden yeni bir liste oluşturmak için,
üzerine list fonksiyonu uygulanmalıdır:
lst = [2, 3, 6, 8, 15]
res = map(square, lst)
Sonuçta aşağıdaki liste elde edilecektir:
[4, 9, 36, 64, 225]
Ayrıca, map fonksiyonu ile çalışırken
ilk parametre olarak bir lambda fonksiyonu da belirtilebilir.
Önceki örneği bir lambda fonksiyonu kullanarak yeniden yazalım:
res = map(lambda num: num ** 2, lst, lst)
print(list(res))
Aşağıdaki kodu bir lambda fonksiyonu kullanarak yeniden yazın:
def func(num):
return num + 1
lst = [1, 2, 3, 4, 5]
res = map(func, lst)
print(list(res))
Aşağıdaki kodu bir lambda fonksiyonu kullanarak yeniden yazın:
def func(txt):
return txt[::-1]
lst = ['123', '456', '789']
res = map(func, lst)
print(list(res))