04 wrz

Wykorzystanie map() w Python: składnia, przykłady

Funkcja map() w Python

Funkcja map() jest jednym z narzędzi programowania funkcyjnego w Python. Pozwala ona na zastosowanie określonej funkcji do każdego elementu w zbiorze danych: listy, krotki/tuple itd. Zwracany jest iterator zawierający wyniki tych operacji. map() jest jedną z wielu wbudowanych funkcji Pythona, która pozwala na bardziej efektywne przetwarzanie danych.

Składnia funkcji map()

‍Składnia funkcji map() jest następująca:

map(funkcja, dane1, dane2, ...)

Argumenty funkcji map()

Funkcja map() przyjmuje dwa główne argumenty:

  1. funkcja – funkcja, która ma zostać zastosowana do każdego elementu z dane
  2. dane – zbiór danych, na którym ma zostać wykonana operacja

Można przekazać więcej niż jedno dane do funkcji map(). W takim przypadku funkcja musi przyjmować tyle argumentów, ile jest iterowanych zbiorów.

Wartość zwracana przez funkcję map()

Funkcja map() zwraca obiekt klasy map, który można przekonwertować do innych struktur danych, takich jak lista, krotka czy zbiór, za pomocą odpowiednich wbudowanych funkcji.

Przykład 1: Zastosowanie funkcji do listy

Przeanalizujmy przykład, w którym chcemy zastosować funkcję kwadrat() do każdego elementu listy:

liczby = [2, 4, 6, 8, 10]

def kwadrat(liczba):
    return liczba * liczba

liczby_pomnozone_iterator = map(kwadrat, liczby)

liczby_pomnozone = list(liczby_pomnozone_iterator)

print(liczby_pomnozone)  # [4, 16, 36, 64, 100]

W tym przypadku, funkcja kwadrat() jest stosowana do każdego elementu listy liczby. Otrzymujemy nową listę liczby_pomnozone zawierającą wyniki.

Przykład 2: Wykorzystanie wyrażeń lambda

Zamiast definiować osobną funkcję, można użyć wyrażeń lambda do zastosowania jednolinijkowej operacji do każdego elementu. Poniżej znajduje się przykład zastosowania wyrażenia lambda do obliczenia kwadratów liczb:

liczby = [2, 4, 6, 8, 10]

liczby_pomnozone_iterator = map(lambda x: x * x, liczby)

liczby_pomnozone = list(liczby_pomnozone_iterator)

print(liczby_pomnozone)  # [4, 16, 36, 64, 100]

W tym przypadku, wyrażenie lambda lambda x: x * x jest stosowane do każdego elementu listy liczby, zwracając nową listę liczby_pomnozone.

Przykład 3: Stosowanie funkcji wbudowanych

Funkcję wbudowane w Python można również wykorzystać w funkcji map(). Na przykład, jeżeli mamy listę słów, możemy utworzyć nową listę zawierającą długość każdego słowa:

slowa = ["Hello", "world", "Python"]

dlugosc_slow_iterator = map(len, slowa)

dlugosc_slow = list(dlugosc_slow_iterator)

print(dlugosc_slow)  # [5, 5, 6]

W tym przypadku, funkcja len() jest stosowana do każdego elementu listy slowa, zwracając nową listę dlugosc_slow zawierającą długość każdego ciągu znaków.

Przykład 4: Stosowanie funkcji z wieloma zbiorami danych

Jeżeli funkcja wbudowana do Python przyjmuje więcej niż jeden argument, można przekazać kilka zbiorów danych do funkcji map(). Przykładem takiej funkcji jest pow(x, y), która podnosi x do potęgi y. Poniżej znajduje się przykład zastosowania tej funkcji z dwoma listami:

podstawa = [1, 2, 3, 4]
potega = [2, 3, 4, 5]

wynik_iterator = map(pow, podstawa, potega)

wynik = list(wynik_iterator)

print(wynik)  # [1, 8, 81, 1024]

W tym przypadku, funkcja pow() jest stosowana do każdej pary elementów z list podstawa i potega, zwracając nową listę wynik zawierającą wyniki.

Podsumowanie

W tym artykule omówiliśmy funkcję map() w Python. Dowiedzieliśmy się, jak można ją zastosować do przetwarzania danych w sposób bardziej zwięzły i efektywny. Poznaliśmy różne sposoby stosowania funkcji map(), takie jak zastosowanie własnych funkcji, wyrażeń lambda oraz funkcji wbudowanych.