Python funkcja map() z PRZYKŁADAMI

Python map() stosuje funkcję do wszystkich elementów iteratora podanych jako dane wejściowe. Iteratorem może być na przykład lista, krotka, zestaw, słownik lub ciąg znaków i zwraca iterowalny obiekt mapy. Python map() jest funkcją wbudowaną.

Składnia

map(function, iterator1,iterator2 ...iteratorN)

Parametry

Oto dwa ważne

  • funkcja: Obowiązkowa funkcja, którą należy nadać mapie, która zostanie zastosowana do wszystkich elementów dostępnych w iteratorze.
  • iterator: iterowalny obiekt obowiązkowy. Może to być lista, krotka itp. Do funkcji map() możesz przekazać wiele obiektów iteratora.

Wartość zwracana

Funkcja map() zastosuje daną funkcję do wszystkich elementów wewnątrz iteratora i zwróci iterowalny obiekt mapy, np. krotkę, listę itp.

Jak działa funkcja map()?

Funkcja map() przyjmuje dwa dane wejściowe jako funkcję i obiekt iterowalny. Funkcja podana funkcji map() jest funkcją normalną i będzie iterować po wszystkich wartościach znajdujących się w danym 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 będzie następująca:

def square(n):
	return n*n

Lista elementów, które chcemy znaleźć w kwadracie, wygląda następująco:

my_list = [2,3,4,5,6,7,8,9]

Teraz użyjmy wbudowanej funkcji map() Pythona, aby uzyskać kwadrat każdego elementu w 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]

Wynikiem funkcji map(), jak widać na wyjściu, jest obiekt mapy wyświetlany na ekranie jako .

Będziesz musiał iterować dane wyjściowe mapy, używając pętli for lub metody list(), aby uzyskać ostateczny wynik. Użyłem list() w kodzie, który wyświetla wartości z podanej listy.

Zatem używając funkcji map() jesteśmy w stanie obliczyć kwadrat każdej liczby. Lista podana do mapy to [2,3,4,5,6,7,8,9], a używając funkcji Square() otrzymamy wynik z map() otrzymaliśmy [4, 9, 16, 25, 36, 49, 64, 81] .

Funkcja map() stosuje funkcję Square() do wszystkich pozycji na liście. Na przykład zmienna my_list i aktualizuje listę kwadratem każdej liczby. Wartość out jest przechowywana w zmiennej zaktualizowana_lista.

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 Python. W przykładzie zamierzamy skorzystać Python round() wbudowana funkcja, która zaokrągla podane wartości.

Przykład:

Lista, którą mam, to moja_lista = [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 znajdującego się na liście. Użyjemy 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 pozycji na liście i zwraca listę ze wszystkimi wartościami zaokrąglonymi, 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 znaków działa jak tablica, więc możemy go łatwo użyć w funkcji map().

W przykładzie mamy funkcję myMapFunc(), która zajmuje się konwersją podanego ciągu znaków na wielkie litery. Funkcja myMapFunc () jest przekazywana funkcji map(). Funkcja map zajmie się konwersją ciągu znaków podanego na wielkie litery poprzez przekazanie łańcucha do funkcji 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 listof Numbers

Aby pracować z listą, funkcja map() bierze listę liczb i mnoży 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() zajmuje się pomnożeniem podanej liczby przez 10. Funkcja podawana jest do mapowania 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]

Wynik, który widzimy, jest taki, że każda liczba na liście to

pomnożone przez 10.

Używanie map() z Tuple

Krotka jest obiektem w Python który ma elementy oddzielone 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']

Dane wyjściowe, które otrzymujemy, to krotka zwrotna, w której wszystkie zawarte w niej wartości są konwertowane na wielkie litery.

Używanie map() ze słownikiem

A słownik w Python jest tworzony za pomocą nawiasów klamrowych ({}). Ponieważ słownik jest iteratorem, możesz go używać wewnątrz funkcji map(). Użyjmy teraz słownika jako iteratora wewnątrz 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

Ustalać się Python jest nieuporządkowaną kolekcją elementów w nawiasach klamrowych(()). Ponieważ set() jest również iteratorem, możesz go używać wewnątrz funkcji map().

Oto działający przykład użycia set jako iteratora 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.

Zatem w tym przykładzie użyjemy funkcji lambda wewnątrz funkcji 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]

Używanie wielu iteratorów w funkcji map().

Przykład 1: Przekazywanie dwóch iteratorów list do metody map()

Możesz wysłać więcej niż jeden iterator, np. listę, krotkę itp., jednocześnie do funkcji map().

Na przykład, jeśli chcesz dodać dwie listy. To samo można zrobić za pomocą funkcji map(). Będziemy korzystać z dwóch list moja_lista1 i moja_lista2.

W poniższym przykładzie pierwszy element z my_list1 jest dodawany do pierwszego elementu z my_list2. Funkcja myMapFunc() pobiera elementy z my_list1 i my_list2 i zwraca sumę obu.

Oto działający przykład dodania dwóch podanych list za pomocą 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: Przekazywanie jednej krotki i iteratora listy do metody map()

Zamierzamy skorzystać z listy i iteratora krotek w funkcji map(). Funkcja jest przekazywana do map – myMapFunc() pobierze elementy z listy i Tuple. Elementy zostaną połączone znakiem podkreślenia (_). Przykład działania jest pokazany poniżej:

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']

Podsumowanie

  • Python map() to wbudowana funkcja, która stosuje funkcję do wszystkich elementów iteratora podanych jako dane wejściowe. Iteratorem może być na przykład lista, krotka, ciąg znaków itp. i zwraca on iterowalny obiekt mapy.
  • Funkcja map() zastosuje daną funkcję do wszystkich elementów wewnątrz iteratora i zwróci iterowalny obiekt mapy, np. krotkę, listę itp.
  • Python Funkcja map() jest funkcją wbudowaną i może być również używana z innymi wbudowanymi funkcjami dostępnymi w Python.
  • Krotka jest obiektem w Python który ma elementy oddzielone 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.
  • Słownik w Python jest tworzony za pomocą nawiasów klamrowych ({}). Ponieważ słownik jest iteratorem, możesz go używać wewnątrz funkcji map().
  • Ustalać się Python jest nieuporządkowaną kolekcją elementów w nawiasach klamrowych(()). Ponieważ set() jest również iteratorem, możesz go używać wewnątrz funkcji map().
  • In Python, wyrażenia lambda (lub formularze lambda) są wykorzystywane do konstruowania funkcji anonimowych. Zatem słowo kluczowe lambda musi zostać użyte, jeśli chcesz użyć lambda wewnątrz funkcji map().
  • Możesz wysłać więcej niż jeden iterator, np. listę, krotkę do funkcji map().