Python map() функция с ПРИМЕРИ
Python map() прилага функция към всички елементи на итератор, даден като вход. Един итератор, например, може да бъде списък, кортеж, набор, речник, низ и връща итерируем обект на карта. Python map() е вградена функция.
Синтаксис
map(function, iterator1,iterator2 ...iteratorN)
параметри
Ето две важни
- функция: Задължителна функция, която трябва да бъде дадена на map, която ще бъде приложена към всички елементи, налични в итератора.
- итератор: Итерируем задължителен обект. Може да бъде списък, кортеж и т.н. Можете да подадете множество итераторни обекти към функцията map().
Връщана стойност
Функцията map() ще приложи дадената функция върху всички елементи в итератора и ще върне итерируем обект на карта, т.е. кортеж, списък и т.н.
Как работи функцията map()?
Функцията map() приема два входа като функция и итерируем обект. Функцията, която се дава на map() е нормална функция и ще обхожда всички стойности, присъстващи в дадения итерируем обект.
Например, помислете, че имате списък с числа и искате да намерите квадрата на всяко от числата.
За да получим изхода, имаме нужда от функцията, която ще върне квадрата на даденото число. Функцията ще бъде както следва:
def square(n): return n*n
Списъкът с елементи, които искаме да намерим на квадрата, е както следва:
my_list = [2,3,4,5,6,7,8,9]
Сега нека използваме вградената функция на map() python, за да получим квадрата на всеки от елементите в my_list.
Крайният код е както следва:
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))
Изход:
<map object at 0x0000002C59601748> [4, 9, 16, 25, 36, 49, 64, 81]
Резултатът от функцията map(), както се вижда в изхода, е обект на карта, показан на екрана като .
Ще трябва да итерирате изхода от картата, като използвате for-цикъл или метод list(), за да получите крайния изход. Използвах list() в кода, който показва стойностите в дадения списък.
Така че използвайки функцията map(), можем да получим квадрата на всяко число. Списъкът, даден за map, беше [2,3,4,5,6,7,8,9] и използвайки функцията square() изходът от map() получихме е [4, 9, 16, 25, 36, 49, 64, 81] .
Функцията map() прилага функцията square() върху всички елементи в списъка. Например променлива my_list и актуализира списъка с квадрата на всяко число. Изходът се съхранява в променливата updated_list.
Използване на map() с Python вградени функции
Python map() е вградена функция и може да се използва и с други вградени функции, налични в Python. В примера, който ще използваме Python round() вградена функция, която закръгля дадените стойности.
Пример:
Списъкът, който имам, е my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] .
Имам нужда от закръглените стойности за всеки елемент в списъка. Ще използваме round() като функция за 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))
Изход:
<map object at 0x000000E65F901748> [3, 4, 4, 6, 6, 8, 8, 10]
Функцията round() се прилага към всички елементи в списъка и връща обратно списък с всички стойности, закръглени, както е показано в изхода.
Използване на map() с низ като итератор
Можем също да използваме map() на низ. в Python, низът действа като масив, така че можем лесно да го използваме в map().
В примера имаме функция myMapFunc(), която се грижи за преобразуването на дадения низ в главни букви. Функцията myMapFunc () се дава на map() function. Map функцията ще се погрижи за преобразуването на низа, даден в главни букви, чрез предаване на низа на 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="")
Изход:
<map object at 0x000000DF2E711748> WELCOME TO GURU99 TUTORIALS!
Използване на map() със listof Numbers
За да работите със списъка в map(), ще вземете списък с числа и ще умножите всяко число в списъка по 10.
Списъкът, който ще използваме е: [2,3,4,5,6,7,8,9]. Функцията myMapFunc () се грижи за умножаването на даденото число по 10. Функцията е дадена за карта заедно със списъка.
Пример:
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))
Изход:
<map object at 0x000000EE2C061898> [20, 30, 40, 50, 60, 70, 80, 90]
Резултатът, който виждаме, е, че всяко число в списъка е
умножено по 10.
Използване на map() с Tuple
Кортежът е обект в Python който има елементи, разделени със запетаи и оградени в кръгли скоби. В примера ще вземем кортеж със стойности на низ. Функцията, която ще използваме, ще преобразува дадените стойности в главни букви.
Пример:
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))
Изход:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Резултатът, който получаваме, е обратен кортеж с всички стойности в него, преобразувани в главни букви.
Използване на map() с речника
A речник в Python се създава с помощта на къдрави скоби ({}). Тъй като речникът е итератор, можете да го използвате във функцията map(). Нека сега използваме речник като итератор във функцията map().
Следващият пример показва работата на итератора на речника в 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))
Изход:
<map object at 0x0000007EB451DEF0> [20, 30, 40, 50, 60, 70, 80, 90]
Използване на map() с Set
Задайте в Python е неподредена колекция от елементи във къдрави скоби(()). Тъй като set() също е итератор, можете да го използвате във функцията map().
Ето един работещ пример за използване на set като итератор в 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))
Изход:
<map object at 0x000000AC8F05DEF0> [20, 30, 40, 50, 60, 70, 80, 90]
Използване на map() с Lambda функция
In Python, ламбда изразите се използват за конструиране на анонимни функции. Ще трябва да използвате ключовата дума lambda точно както използвате def за дефиниране на нормални функции.
Така че в примера ще използваме ламбда функцията вътре в map(). Функцията ламбда ще умножи всяка стойност в списъка с 10.
Пример:
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))
Изход:
<map object at 0x000000BD18B11898> [20, 30, 40, 50, 60, 70, 80, 90]
Използване на множество итератори във функцията map().
Пример 1: Предаване на два итератора на списък към map()
Можете да изпратите повече от един итератор, т.е. списък, кортеж и т.н. едновременно към функцията map().
Например, ако искате да добавите два списъка. Същото може да се направи с помощта на функцията map(). Ще използваме два списъка my_list1 и my_list2.
В примера по-долу първият елемент в my_list1 се добавя към първия елемент от my_list2. Функцията myMapFunc() приема елементи от my_list1 и my_list2 и връща сумата от двете.
Ето работния пример за добавяне на два дадени списъка с помощта на функцията 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))
Изход:
<map object at 0x0000004D5F751860> [6, 11, 16, 21, 26, 31, 36]
Пример 2: Предаване на един кортеж и итератор на списък към map()
Ще използваме списък и итератор на кортежи във функцията map(). Функцията е дадена за map – myMapFunc() ще получи елементите от списъка и Tuple. Елементите ще бъдат обединени с долна черта (_). Работният пример е както е показано по-долу:
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))
Изход:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
Oбобщение
- Python map() е вградена функция, която прилага функция към всички елементи на итератор, даден като вход. Итератор, например, може да бъде списък, кортеж, низ и т.н. и връща итерируем обект на карта.
- Функцията map() ще приложи дадената функция върху всички елементи в итератора и ще върне итерируем обект на карта, т.е. кортеж, списък и т.н.
- Python map() е вградена функция и може да се използва и с други вградени функции, налични в Python.
- Кортежът е обект в Python който има елементи, разделени със запетаи и оградени в кръгли скоби. В примера ще вземем кортеж със стойности на низ. Функцията, която ще използваме, ще преобразува дадените стойности в главни букви.
- Речник в Python се създава с помощта на къдрави скоби ({}). Тъй като речникът е итератор, можете да го използвате във функцията map().
- Задайте в Python е неподредена колекция от елементи във къдрави скоби(()). Тъй като set() също е итератор, можете да го използвате във функцията map().
- In Python, ламбда изрази (или ламбда форми) се използват за конструиране на анонимни функции. Така че ключовата дума lambda трябва да се използва, когато искате да използвате lambda вътре в map().
- Можете да изпратите повече от един итератор, т.е. списък, кортеж към функцията map().