Jak korzystać z funkcji map() w Pythonie
Dowiedz się, jak używać funkcji map() języka Python. Opanuj stosowanie funkcji do iteracji bez pisania pętli i porównuj mapę ze wyrażeniami listowymi.
Przegląd
Podczas przetwarzania zbiorów danych często trzeba będzie zastosować określoną transformację do każdego pojedynczego elementu w iterowalnym obiekcie. Na przykład konwersja listy numerów ciągów na liczby całkowite lub normalizowanie tablicy ciągów w bazie danych poprzez konwersję ich na małe litery. Zamiast pisać szczegółowe pętle „for”, Python udostępnia wbudowane narzędzie o nazwie „map()”.
Funkcja `map(funkcja, iterowalna)` przyjmuje jako argumenty funkcję transformacji i wartość iterowalną. Stosuje tę funkcję do każdego elementu iterowalnego obiektu i zwraca obiekt iteratora (obiekt „map”). Ponieważ jest zwracany jako iterator, obliczenia są wykonywane leniwie: elementy są przetwarzane tylko podczas iteracji po nich, co oszczędza pamięć w przypadku dużych zbiorów danych.
Aby natychmiast uzyskać reprezentację listową obiektu mapy, należy rzucić wynik za pomocą konstruktora `list()`: `list(map(func, data))`. Możesz przekazać dowolną standardową funkcję, standardową funkcję biblioteczną (taką jak `str` lub `len`) lub niestandardowe funkcje anonimowe zadeklarowane za pomocą słowa kluczowego `lambda` bezpośrednio do `map()` w celu wykonania wbudowanego.
Dane wyjściowe kodu i wykonania
Ten skrypt demonstruje modyfikowanie kolekcji przy użyciu funkcji map() z transformacjami ciągów, mapowaniem elementów listy na liczby i używaniem wywołań zwrotnych lambda.
# 1. Map string conversion over a list of numbers
numbers = [1, 2, 3, 4]
string_numbers = list(map(str, numbers))
print("Mapped to strings:", string_numbers)
# 2. Square numbers using a lambda function inside map()
squared = list(map(lambda x: x**2, numbers))
print("Squared numbers:", squared)
# 3. Apply custom logic function to items
def normalize_name(name):
return name.strip().capitalize()
names = [" alice", "BOB ", " charlie "]
clean_names = list(map(normalize_name, names))
print("Clean names list:", clean_names)Mapped to strings: ['1', '2', '3', '4']
Squared numbers: [1, 4, 9, 16]
Clean names list: ['Alice', 'Bob', 'Charlie']Wdrażanie krok po kroku
- Zidentyfikuj funkcję transformacji, którą chcesz zastosować do każdego elementu w kolekcji.
- Wywołaj map(function_name, iterable), aby utworzyć leniwy iterator przekształconych elementów.
- Zawiń wywołanie map() wewnątrz list(), jeśli chcesz natychmiast uzyskać dostęp do wszystkich elementów w postaci standardowej listy.
- Połącz map() z funkcjami lambda, aby uzyskać szybkie, jednorazowe transformacje wbudowane.
Często zadawane pytania
Czy map() jest lepsza od wyrażeń listowych?
Społeczność ogólnie uważa, że wyrażenia listowe są bardziej czytelne i oparte na języku Python. Jednakże map() może działać szybciej, jeśli zastosuje się istniejącą funkcję wbudowaną (np. map(str, list)), ponieważ uruchamia ona zoptymalizowane pętle kodu C.
Czy map() może przyjmować wiele iteracji?
Tak! Jeśli funkcja transformacji przyjmuje wiele argumentów, możesz przekazać wiele iteracji do map(). Na przykład map(lambda x, y: x + y, lista1, lista2) doda elementy parami.
Powiązane tematy
Dowiedz się, jak używać funkcji lambda w Pythonie. Opanuj anonimowe funkcje, wbudowane wywołania zwrotne i sortowanie danych list za pomocą kluczy lambda.
Jak korzystać ze zrozumienia list w PythonieDowiedz się, jak używać wyrażeń listowych w Pythonie. Twórz zwięzłe pętle, stosuj filtry warunkowe i buduj macierze z przejrzystą składnią wizualną.
Jak korzystać z funkcji filter() w PythonieDowiedz się, jak używać funkcji filter() języka Python do wyodrębniania elementów z kolekcji. Porównaj filtr ze wyrażeniami listowymi i wywołaniami zwrotnymi lambda.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Funkcje Pythona
Opanuj funkcje Pythona. Dowiedz się, jak pisać kod wielokrotnego użytku za pomocą def, definiować argumenty, zwracać wartości i rozumieć zakres lokalnie i globalnie.
Ściągawka dotycząca funkcji modułu matematycznego Pythona
Skrócona instrukcja obsługi standardowej biblioteki matematycznej języka Python. Dowiedz się, jak korzystać z funkcji trygonometrycznych, logarytmicznych, zaokrąglających i arytmetycznych.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.