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.