Python'un Map, Filter ve Reduce Fonksiyonlarını Anlamak
Python, veri işleme görevlerini basitleştirebilecek çeşitli işlevsel programlama araçları sağlar. Bunlar arasında map
, filter
ve reduce
işlevleri bulunur. Bu işlevler, veri koleksiyonları üzerinde özlü ve okunabilir bir şekilde işlemler gerçekleştirmenizi sağlar. Bu makale, bu işlevlerin her birini inceler ve bunları etkili bir şekilde nasıl kullanacağınızı anlamanıza yardımcı olacak örnekler sunar.
map
Fonksiyonu
map
fonksiyonu, bir girdi listesindeki (veya herhangi bir yineleyicideki) tüm öğelere verilen bir fonksiyonu uygular ve sonuçları üreten bir yineleyici döndürür. Bu, özellikle bir koleksiyondaki her bir öğeye dönüşümler uygulamak için yararlıdır.
Sözdizimi
map(function, iterable)
Örnek
Bir listedeki her sayının karesini almak istediğinizi varsayalım. Bunu başarmak için map
kullanabilirsiniz:
# Define a function to square a number
def square(x):
return x * x
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Apply the function to each item in the list
squared_numbers = map(square, numbers)
# Convert the result to a list and print
print(list(squared_numbers)) # Output: [1, 4, 9, 16, 25]
filtre
Fonksiyonu
filter
fonksiyonu, True
veya False
döndüren bir fonksiyona dayalı olarak bir yineleyiciden öğeleri filtrelemek için kullanılır. Sadece fonksiyonun True
döndürdüğü öğeler sonuca dahil edilir.
Sözdizimi
filter(function, iterable)
Örnek
Örneğin, bir listedeki yalnızca çift sayıları tutmak istiyorsanız, filter
: kullanabilirsiniz:
# Define a function to check if a number is even
def is_even(x):
return x % 2 == 0
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Filter the list using the function
even_numbers = filter(is_even, numbers)
# Convert the result to a list and print
print(list(even_numbers)) # Output: [2, 4]
reduce
Fonksiyonu
functools
modülünün bir parçası olan reduce
fonksiyonu, bir yineleyicinin öğelerine soldan sağa doğru kümülatif olarak ikili bir fonksiyon uygular; böylece yineleyiciyi tek bir değere indirger.
Sözdizimi
from functools import reduce
reduce(function, iterable[, initializer])
Örnek
Örneğin, bir listedeki tüm sayıların çarpımını bulmak için reduce
: komutunu kullanabilirsiniz:
from functools import reduce
# Define a function to multiply two numbers
def multiply(x, y):
return x * y
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Reduce the list using the function
product = reduce(multiply, numbers)
# Print the result
print(product) # Output: 120
Çözüm
map
, filter
ve reduce
fonksiyonları Python'da fonksiyonel programlama için güçlü araçlardır. Dönüşümleri uygulamak, verileri filtrelemek ve koleksiyonları tek bir değere indirgemek için zarif çözümler sunarlar. Bu fonksiyonlarda ustalaşarak çeşitli veri işleme görevleri için daha öz ve anlamlı kodlar yazabilirsiniz.