Python Funkce map() s PŘÍKLADY
⚡ Chytré shrnutí
Python Funkce map() aplikuje danou funkci na každou položku iterovatelného objektu, jako je seznam, n-tice, sada, slovník nebo řetězec. Vrací objekt typu „lazy map“, který lze převést pomocí funkce list() nebo iterovat pomocí smyčky.
Syntax
map(function, iterator1,iterator2 ...iteratorN)
parametry
Zde jsou dva důležité parametry:
- funkce: Povinná funkce, která má být přiřazena metodě map(), a která bude aplikována na všechny položky dostupné v iterátoru.
- iterátor: Povinný iterovatelný objekt. Může to být seznam, n-tice atd. Funkci map() můžete předat více objektů iterátoru.
Návratová hodnota
Funkce map() aplikuje danou funkci na všechny položky uvnitř iterátoru a vrací iterovatelný objekt mapy, tj. n-tici, seznam atd.
Jak funguje funkce map()?
Funkce map() přijímá dva vstupy: funkci a iterovatelný objekt. Funkce přiřazená map() je normální funkce a iteruje přes všechny hodnoty přítomné v iterovatelném objektu.
Představte si například, že máte seznam čísel a chcete najít druhou mocninu každého z čísel.
Pro získání výstupu potřebujeme funkci, která vrátí druhou mocninu zadaného čísla. Funkce vypadá takto:
def square(n): return n*n
Seznam položek, pro které chceme najít druhou mocninu, je následující:
my_list = [2,3,4,5,6,7,8,9]
Nyní použijeme vestavěnou funkci map() k získání druhé mocniny každé z položek v seznamu my_list.
Konečný kód je následující:
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))
Výstup:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Výstupem funkce map(), jak je vidět výše, je objekt mapy zobrazený na obrazovce jako .
Pro získání konečného výstupu budete muset iterovat výstup z map() pomocí smyčky for nebo metody list(). V kódu jsem použil list() k zobrazení hodnot uvnitř daného seznamu.
Takže pomocí funkce map() můžeme získat druhou mocninu každého čísla. Seznam zadaný funkci map() byl [2,3,4,5,6,7,8,9] a pomocí funkce square() jsme dostali výstup [4, 9, 16, 25, 36, 49, 64, 81].
Funkce map() aplikuje funkci square() na všechny položky v seznamu. Například vezme proměnnou my_list a aktualizuje seznam o druhou mocninu každého čísla. Výstup je uložen v proměnné updated_list.
Použití map() s Python vestavěné funkce
Jedno Python Funkce map() je vestavěná funkce a lze ji také použít s jinými vestavěnými funkcemi dostupnými v PythonV tomto příkladu využijeme Python Vestavěná funkce round(), která zaokrouhluje zadané hodnoty.
Příklad:
Seznam, který mám, je my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Potřebuji zaokrouhlené hodnoty pro každou položku v seznamu, takže jako funkci map() použijeme funkci round().
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))
Výstup:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Funkce round() se aplikuje na všechny položky v seznamu a vrací seznam se všemi hodnotami zaokrouhlenými, jak je znázorněno ve výstupu.
Použití map() s řetězcem jako iterátor
Můžeme také použít map() na řetězec. V PythonŘetězec se chová jako pole, takže ho můžeme snadno použít uvnitř map().
V tomto příkladu máme funkci myMapFunc(), která se postará o převod zadaného řetězce na velká písmena. Funkce myMapFunc() je předána funkci map(). Funkce map() se postará o převod zadaného řetězce na velká písmena jeho předáním funkci 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="")
Výstup:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Použití map() se seznamem Numbers
Pro práci se seznamem v map() vezmeme seznam čísel a každé číslo v seznamu vynásobíme číslem 10.
Seznam, který budeme používat, je [2,3,4,5,6,7,8,9]. Funkce myMapFunc() se postará o vynásobení daného čísla číslem 10. Funkce je předána funkci map() spolu se seznamem.
Příklad:
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))
Výstup:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Výstup, který vidíme, je, že každé číslo v seznamu je vynásobeno 10.
Použití map() s Tuple
N-tice je objekt v Python který má položky oddělené čárkami a uzavřené v kulatých závorkách. V tomto příkladu vezmeme n-tici s řetězcovými hodnotami. Funkce, kterou použijeme, převede zadané hodnoty na velká písmena.
Příklad:
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))
Výstup:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Výstupem, který dostaneme, je n-tice zpět, kde jsou všechny hodnoty v ní převedeny na velká písmena.
Použití map() se slovníkem
A slovník v Python se vytváří pomocí složených závorek ({}). Protože slovník je iterátor, můžete jej použít uvnitř funkce map(). Použijme nyní slovník jako iterátor uvnitř map().
Následující příklad ukazuje fungování iterátoru slovníku uvnitř 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))
Výstup:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Použití map() s Set
Set v Python je neuspořádaná kolekce položek ve složených závorkách ({}). Protože set() je také iterátor, můžete ho použít uvnitř funkce map().
Zde je funkční příklad použití množiny jako iterátoru uvnitř 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))
Výstup:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Použití map() s funkcí Lambda
In Pythonlambda výrazy se používají ke konstrukci anonymních funkcí. Budete muset použít klíčové slovo lambda, stejně jako používáte def k definování normálních funkcí.
V tomto příkladu tedy použijeme funkci lambda uvnitř map(). Funkce lambda vynásobí každou hodnotu v seznamu číslem 10.
Příklad:
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))
Výstup:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Použití více iterátorů uvnitř funkce map()
Příklad 1: Předání dvou iterátorů seznamu funkci map()
Do funkce map() můžete současně odeslat více než jeden iterátor, tj. seznam, n-tici atd.
Například pokud chcete přidat dva seznamy, totéž lze provést pomocí funkce map(). Použijeme dva seznamy, můj_seznam1 a můj_seznam2.
V níže uvedeném příkladu je první položka v seznamu my_list1 přidána k první položce seznamu my_list2. Funkce myMapFunc() načítá položky ze seznamu my_list1 a my_list2 a vrací součet obou.
Zde je pracovní příklad sčítání dvou daných seznamů pomocí funkce 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))
Výstup:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Příklad 2: Předání jedné n-tice a iterátoru seznamu funkci map()
Ve funkci map() použijeme iterátor seznamu a n-tice. Funkce myMapFunc() přiřazená funkci map() načte položky ze seznamu a n-tice. Položky budou spojeny podtržítkem (_). Pracovní příklad je uveden níže:
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))
Výstup:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

