Python Funkcja map() z PRZYKŁADAMI
⚡ Inteligentne podsumowanie
Python Funkcja map() stosuje daną funkcję do każdego elementu obiektu iterowalnego, takiego jak lista, krotka, zbiór, słownik lub ciąg znaków. Zwraca ona leniwy obiekt mapy, który można konwertować za pomocą funkcji list() lub iterować za pomocą pętli.
Składnia
map(function, iterator1,iterator2 ...iteratorN)
Parametry
Oto dwa ważne parametry:
- funkcjonować: Obowiązkowa funkcja, która ma zostać przekazana do map(), a która zostanie zastosowana do wszystkich elementów dostępnych w iteratorze.
- iterator: Obowiązkowy obiekt iterowalny. Może to być lista, krotka itp. Do funkcji map() można przekazać wiele obiektów iteracyjnych.
Wartość zwracana
Funkcja map() stosuje podaną funkcję do wszystkich elementów wewnątrz iteratora i zwraca iterowalny obiekt mapy, np. krotkę, listę itp.
Jak działa funkcja map()?
Funkcja map() przyjmuje dwa dane wejściowe: funkcję i obiekt iterowalny. Funkcja przekazana do map() jest zwykłą funkcją i iteruje po wszystkich wartościach obecnych w obiekcie iterowalnym.
Załóżmy na przykład, że masz listę liczb i chcesz obliczyć kwadrat każdej z nich.
Aby uzyskać wynik, potrzebujemy funkcji, która zwróci kwadrat podanej liczby. Funkcja wygląda następująco:
def square(n): return n*n
Lista elementów, dla których chcemy znaleźć kwadrat, jest następująca:
my_list = [2,3,4,5,6,7,8,9]
Teraz użyjmy wbudowanej funkcji map(), aby obliczyć kwadrat każdego elementu na liście my_list.
Ostateczny kod jest następujący:
def square(n): return n*n my_list = [2,3,4,5,6,7,8,9] updated_list = map(square, my_list) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Jak widać powyżej, wyjściem funkcji map() jest obiekt mapy wyświetlany na ekranie w postaci .
Będziesz musiał iterować dane wyjściowe z map() za pomocą pętli for lub metody list(), aby uzyskać wynik końcowy. Użyłem metody list() w kodzie, aby wyświetlić wartości z podanej listy.
Używając funkcji map(), możemy obliczyć kwadrat każdej liczby. Lista przekazana funkcji map() to [2,3,4,5,6,7,8,9], a używając funkcji square(), otrzymaliśmy wynik [4, 9, 16, 25, 36, 49, 64, 81].
Funkcja map() stosuje funkcję square() do wszystkich elementów listy. Na przykład, pobiera zmienną my_list i aktualizuje listę o kwadrat każdej liczby. Dane wyjściowe są przechowywane w zmiennej updated_list.
Używanie mapy() z Python wbudowane funkcje
Python Funkcja map() jest funkcją wbudowaną i może być również używana z innymi wbudowanymi funkcjami dostępnymi w PythonW tym przykładzie wykorzystamy Python Wbudowana funkcja round(), która zaokrągla podane wartości.
Przykład:
Lista, którą mam, to my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Potrzebuję zaokrąglonych wartości dla każdego elementu na liście, więc użyjemy funkcji round() jako funkcji map().
my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] updated_list = map(round, my_list) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Funkcja round() jest stosowana do wszystkich elementów listy i zwraca listę ze wszystkimi zaokrąglonymi wartościami, jak pokazano na wyjściu.
Używanie map() z ciągiem znaków jako iteratora
Możemy także skorzystać z funkcji map() na ciągu znaków. W Python, ciąg zachowuje się jak tablica, więc możemy go łatwo używać wewnątrz map().
W tym przykładzie mamy funkcję myMapFunc(), która konwertuje podany ciąg znaków na wielkie litery. Funkcja myMapFunc() jest przekazywana do funkcji map(). Funkcja map() konwertuje podany ciąg znaków na wielkie litery, przekazując go do myMapFunc().
def myMapFunc(s): return s.upper() my_str = "welcome to guru99 tutorials!" updated_list = map(myMapFunc, my_str) print(updated_list) for i in updated_list: print(i, end="")
Wyjście:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Używanie map() z listą Numbers
Aby pracować z listą w map(), weźmiemy listę liczb i pomnożymy każdą liczbę na liście przez 10.
Lista, której będziemy używać, to [2,3,4,5,6,7,8,9]. Funkcja myMapFunc() mnoży podaną liczbę przez 10. Funkcja jest przekazywana do funkcji map() wraz z listą.
Przykład:
def myMapFunc(n): return n*10 my_list = [2,3,4,5,6,7,8,9] updated_list = map(myMapFunc, my_list) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Rezultatem jest pomnożenie każdej liczby na liście przez 10.
Używanie map() z Tuple
Krotka jest obiektem w Python którego elementy są rozdzielone przecinkami i ujęte w nawiasy okrągłe. W tym przykładzie weźmiemy krotkę z wartościami ciągu. Funkcja, której użyjemy, zamieni podane wartości na wielkie litery.
Przykład:
def myMapFunc(n): return n.upper() my_tuple = ('php','java','python','c++','c') updated_list = map(myMapFunc, my_tuple) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Wynikiem jest krotka zawierająca wszystkie wartości zamienione na wielkie litery.
Używanie map() ze słownikiem
A słownik w Python tworzony jest za pomocą nawiasów klamrowych ({}). Ponieważ słownik jest iteratorem, można go używać w funkcji map(). Użyjmy teraz słownika jako iteratora w funkcji map().
Poniższy przykład pokazuje działanie iteratora słownika wewnątrz map():
def myMapFunc(n): return n*10 my_dict = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_dict) print(finalitems) print(list(finalitems))
Wyjście:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Używanie map() z Setem
Zestaw w Python to nieuporządkowana kolekcja elementów w nawiasach klamrowych ({}). Ponieważ set() jest również iteratorem, można go używać w funkcji map().
Oto przykład działania wykorzystujący zbiór jako iterator wewnątrz map():
def myMapFunc(n): return n*10 my_set = {2,3,4,5,6,7,8,9} finalitems = map(myMapFunc, my_set) print(finalitems) print(list(finalitems))
Wyjście:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Używanie mapy() z funkcją Lambda
In Python, wyrażenia lambda służą do konstruowania funkcji anonimowych. Będziesz musiał użyć słowa kluczowego lambda tak samo, jak używasz def do definiowania normalnych funkcji.
W tym przykładzie użyjemy funkcji lambda w map(). Funkcja lambda pomnoży każdą wartość na liście przez 10.
Przykład:
my_list = [2,3,4,5,6,7,8,9] updated_list = map(lambda x: x * 10, my_list) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Korzystanie z wielu iteratorów wewnątrz funkcji map()
Przykład 1: Przekazanie dwóch iteratorów listy do map()
Do funkcji map() można wysłać jednocześnie więcej niż jeden iterator, np. listę, krotkę itp.
Na przykład, jeśli chcesz dodać dwie listy, możesz to samo zrobić za pomocą funkcji map(). Użyjemy dwóch list: my_list1 i my_list2.
W poniższym przykładzie pierwszy element listy my_list1 jest dodawany do pierwszego elementu listy my_list2. Funkcja myMapFunc() przyjmuje elementy listy my_list1 i my_list2 i zwraca ich sumę.
Oto przykład działania dodawania dwóch podanych list przy użyciu funkcji map().
def myMapFunc(list1, list2): return list1+list2 my_list1 = [2,3,4,5,6,7,8,9] my_list2 = [4,8,12,16,20,24,28] updated_list = map(myMapFunc, my_list1,my_list2) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Przykład 2: Przekazanie jednej krotki i iteratora listy do map()
Wykorzystamy iterator listy i krotki w funkcji map(). Funkcja przekazana do funkcji map(), myMapFunc(), pobierze elementy z listy i krotki. Elementy zostaną połączone znakiem podkreślenia (_). Poniżej przedstawiono działający przykład:
def myMapFunc(list1, tuple1): return list1+"_"+tuple1 my_list = ['a','b', 'b', 'd', 'e'] my_tuple = ('PHP','Java','Python','C++','C') updated_list = map(myMapFunc, my_list,my_tuple) print(updated_list) print(list(updated_list))
Wyjście:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

