reklama
Funkcja map()
Funkcja map() używa określoną funkcję dla każdego elementu iterowalnego (listy, krotki itp.) i zwraca iterator.
Funkcja map() pozwala przetwarzać i przekształcać wszystkie elementy w iteracji bez użycia jawnej pętli for.
Funkcja map() reprezentuje w Pythonie technikę zwaną mapowaniem.
Podsumowując, mapowanie w Pythonie oznacza przekształcenie wartości w danej sekwencji na inne wartości i ma zastosowanie dla każdego elementu iterowalnego, takiego jak lista,
słownik, krotka, zestaw, ciąg.
składnia funkcji:
map (funkcja, obiekt iterowalny)
Funkcja
map() przyjmuje dwa parametry:
-
funkcja - funkcja, która wykonuje jakąś akcję na każdym elemencie iterowalnym;
-
obiekt iterowalny (iterable) - zestawy, listy, krotki, słowniki, ciągi.
Przykład 1
x=[1,2,3,4,5]
def fun(n):
return n*n
y=map(fun,x)
print(y)
<map object at 0x00000227C72AAB90>
W przykładzie 1, funkcja
map() zwróciła obiekt mapy. Żeby był dla nas czytelny, musimy przekonwertować obiekt mapy na listę, krotkę lub zestaw, wykorzystując odpowiednio
funkcje list(), tuple(), set(), przykład 2 poniżej:
I właśnie w przykładzie 2, zastosowałem dodatkowo funkcję list() w celu przekonwertowania obiektu mapy na listę i otrzymałem czytelny wynik.
Przykład 2
x=[1,2,3,4,5]
def fun(n):
return n*n
y=map(fun,x)
print(y)
<map object at 0x00000227C72AAB90>
print(list(y))
[1, 4, 9, 16, 25]
Jak już pisałem wcześniej, funkcja map() jako argument zawiera funkcję i obiekt iterowalny. Funkcją może być każda funkcja wywoływalna, w tym funkcje wbudowane w Python,
funkcje lambda, funkcje zdefiniowane przez użytkownika, klasy i metody..
Pętla for a funkcja map()
Użyjmy przykładu z wykorzystaniem pętli for i przykładu z użyciem funkcji map(), otrzymując ten sam wynik:
Przykład z użyciem pętli for
x=[1,2,3,4,5]
y=[]
for i in x:
y.append(i*2)
print(y)
[2, 4, 6, 8, 10] #wynik
Przykład z użyciem funkcji map()
x=[1,2,3,4,5]
def fun(n):
return n*2
y=map(fun,x)
print(y)
<map object at 0x00000227C72AB6D0>
print(list(y))
[2, 4, 6, 8, 10] #wynik
Jak widać, funkcja map() iteruje po iterowalnym, podobnie jak pętla for. Po zakończeniu iteracji zwraca obiekt mapy. Następnie możesz przekonwertować obiekt mapy np. na listę i wydrukować go.
Funkcja len() w funkcji map()
Jak już wspomniałem, argumentem funkcji map() mogą być funkcje wbudowane w Python, np. funkcja len():
Przykład z użyciem funkcji map()
x=["Jola", "Krzys", "Pauli", "Madzia"]
y=map(len,x)
print(y)
<map object at 0x00000227C72AB8B0>
print(list(y))
[4, 5, 5, 6] #wynik
Funkcja Math.Sqrt() w funkcji map()
Żeby użyć funkcji Math.Sqrt() w funkcji map() najpierw należy zaimportować bibliotekę matematyczną:
Samouczek Pythona
Dalsza część nauki Pythona
Dalsza część nauki Pythona
Dalsza część nauki Pythona
reklama