Python map () прилага функция към всички елементи на итератор, дадени като вход. Итератор, например, може да бъде списък, кортеж, набор, речник, низ и връща обект на карта, който може да се итерира. Python map () е вградена функция.
В този урок ще научите:
- Синтаксис:
- Как работи функцията map ()?
- Използване на map () с вградени функции на Python
- Използване на map () със низ като итератор
- Използване на map () с listof Numbers
- Използване на map () с Tuple
- Използване на map () с речник
- Използване на map () с Set
- Използване на map () с ламбда функция
- Използване на множество итератори във функцията map ()
Синтаксис:
map(function, iterator1,iterator2… iteratorN)
Параметри
Ето две важни
- функция: Задължителна функция, която трябва да бъде дадена на map, която ще бъде приложена към всички елементи, налични в итератора.
- iterator: Итериращ се задължителен обект. Това може да бъде списък, кортеж и др. Можете да предадете множество обекти на итератор на функция 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*nmy_list = [2,3,4,5,6,7,8,9]updated_list = map(square, my_list)print(updated_list)print(list(updated_list))
Изход:
Изходът на функцията map (), както се вижда в изхода, е обект на карта, показан на екрана като <обект на картата на 0x0000002C59601748>.
Ще трябва да повторите изхода от картата, като използвате for-loop или метода list (), за да получите крайния изход. Използвал съм list () в кода, който показва стойностите в дадения списък.
Така че, използвайки функцията map (), ние можем да получим квадрата на всяко число. Списъкът, даден на map беше [2,3,4,5,6,7,8,9] и използвайки функцията square () изхода от map (), което получихме, е [4, 9, 16, 25, 36, 49, 64, 81].
Картата на функциите () прилага функционалния квадрат () за всички елементи в списъка. Например променливата 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))
Изход:
Функцията round () се прилага към всички елементи в списъка и връща списък с всички закръглени стойности, както е показано в изхода.
Използване на map () със низ като итератор
Можем да използваме и map () на низ. В Python низ действа като масив, за да можем лесно да го използваме вътре в map ().
В примера имаме функция myMapFunc (), която се грижи за преобразуването на дадения низ в главни букви. Функцията myMapFunc () е дадена на функцията map (). Функцията 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 () с listof Numbers
За да работите със списъка в map (), ще вземете списък с числа и ще умножите всяко число в списъка по 10.
Списъкът, който ще използваме, е: [2,3,4,5,6,7,8,9]. Функцията myMapFunc () се грижи да умножи даденото число с 10. Функцията е дадена да картографира заедно със списъка.
Пример:
def myMapFunc(n):return n*10my_list = [2,3,4,5,6,7,8,9]updated_list = map(myMapFunc, my_list)print(updated_list)print(list(updated_list))
Изход:
Резултатът, който виждаме, е, че всяко число в списъка е
умножено по 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 () с речник
Речник в Python се създава с помощта на къдрави скоби ({}). Тъй като речникът е итератор, можете да го използвате във функцията map (). Нека сега използваме речник като итератор в функцията map ().
Следващият пример показва работата на итератора на речника в map ()
def myMapFunc(n):return n*10my_dict = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_dict)print(finalitems)print(list(finalitems))
Изход:
Използване на map () с Set
Set в Python е неподредена колекция от елементи в къдрави скоби (()). Тъй като set () също е итератор, можете да го използвате във функцията map ().
Ето един работен пример за използване на set като итератор в map ()
def myMapFunc(n):return n*10my_set = {2,3,4,5,6,7,8,9}finalitems = map(myMapFunc, my_set)print(finalitems)print(list(finalitems))
Изход:
Използване на map () с ламбда функция
В Python ламбда изразите се използват за изграждане на анонимни функции. Ще трябва да използвате ключовата дума lambda точно както използвате def за дефиниране на нормални функции.
Така че в примера ще използваме функцията ламбда вътре в картата (). Ламбда функцията ще умножи всяка стойност в списъка с 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 ()
Пример 1: Предаване на два итератора на списък в map ()
Можете да изпратите повече от един итератор, т.е. списък, кортеж и т.н., всички едновременно до функцията map ().
Например, ако искате да добавите два списъка. Същото може да се направи с помощта на функцията map (). Ще използваме два списъка my_list1 и my_list2.
В примера по-долу първият елемент от my_list1 се добавя към първия елемент от my_list2. Функцията myMapFunc () приема елементи от my_list1 и my_list2 и връща сумата от двете.
Ето работния пример за добавяне на два дадени списъка с помощта на функцията map ().
def myMapFunc(list1, list2):return list1+list2my_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))
Изход:
Пример 2: Предаване на един Tuple и списък итератор в map ()
Ще използваме списък и итератор на кортеж в функцията map (). Функцията е дадена на map - myMapFunc () ще получи елементите от списъка и Tuple. Елементите ще бъдат обединени с подчертаване (_). Работният пример е както е показано по-долу:
def myMapFunc(list1, tuple1):return list1+"_"+tuple1my_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))
Изход:
Обобщение
- Python map () е вградена функция, която прилага функция към всички елементи на итератор, дадени като вход. Итераторът, например, може да бъде списък, кортеж, низ и т.н. и връща обект на карта, който може да се итерира.
- Функцията map () ще приложи дадената функция върху всички елементи в итератора и ще върне обект на карта, който може да се изпробва, т.е. кортеж, списък и т.н.
- Функцията Python map () е вградена функция и може да се използва и с други вградени функции, налични в Python.
- Кортежът е обект в Python, който има елементи, разделени със запетаи и затворени в кръгли скоби. В примера ще вземем кортеж със низови стойности. Функцията, която ще използваме, ще преобразува дадените стойности в главни букви.
- Речник в Python се създава с помощта на къдрави скоби ({}). Тъй като речникът е итератор, можете да го използвате във функцията map ().
- Set в Python е неподредена колекция от елементи в къдрави скоби (()). Тъй като set () също е итератор, можете да го използвате във функцията map ().
- В Python, ламбда изрази (или ламбда форми) се използват за изграждане на анонимни функции. Така че ключовата дума lambda трябва да се използва, когато искате да използвате lambda вътре в картата ().
- Можете да изпратите повече от един итератор, т.е. списък, кортеж към функцията map ().