Python map () aplikuje funkciu na všetky položky iterátora dané ako vstup. Iterátorom môže byť napríklad zoznam, n-tica, množina, slovník, reťazec a vráti iterovateľný mapový objekt. Python map () je zabudovaná funkcia.
V tomto návode sa dozviete:
- Syntax:
- Ako funguje funkcia map ()?
- Používanie mapy () so zabudovanými funkciami Pythonu
- Použitie mapy () s reťazcom ako iterátorom
- Používanie mapy () s číslami novembra
- Používanie mapy () s Tuple
- Používanie mapy () s Slovníkom
- Používanie mapy () s Setom
- Používanie mapy () s funkciou Lambda
- Používanie viacerých iterátorov vo vnútri funkcie map ()
Syntax:
map(function, iterator1,iterator2… iteratorN)
Parametre
Tu sú dve dôležité
- function: Povinná funkcia, ktorá sa má priradiť k mape, ktorá sa použije na všetky položky dostupné v iterátore.
- iterátor: iterovateľný povinný objekt. Môže to byť zoznam, n-tica atď. Funkcii map () môžete odovzdať viac iteračných objektov.
Návratová hodnota
Funkcia map () použije danú funkciu na všetky položky vo vnútri iterátora a vráti iterovateľný mapový objekt, tj n-ticu, zoznam atď.
Ako funguje funkcia map ()?
Funkcia map () berie dva vstupy ako funkciu a iterovateľný objekt. Funkcia, ktorá je daná funkcii map (), je normálna funkcia a bude iterovať nad všetkými hodnotami prítomnými v danom iterovateľnom objekte.
Zvážte napríklad, že máte zoznam čísel a chcete nájsť štvorec každého z čísel.
Na získanie výstupu potrebujeme funkciu, ktorá vráti štvorec daného čísla. Funkcia bude nasledovná:
def square(n):return n*n
Zoznam položiek, ktoré chceme nájsť, je nasledujúci:
my_list = [2,3,4,5,6,7,8,9]
Teraz použijeme vstavanú funkciu map () python na získanie štvorca každej z položiek v mojom zozname.
Výsledný kód je nasledovný:
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))
Výkon:
Výstupom funkcie map (), ako je vidieť na výstupe, je mapový objekt zobrazený na obrazovke ako
Výstup z mapy budete musieť iterovať pomocou for-loop alebo pomocou metódy list (), aby ste dosiahli konečný výstup. Použil som list () v kóde, ktorý zobrazuje hodnoty vo vnútri uvedeného zoznamu.
Takže pomocou funkcie map () môžeme získať štvorec každého čísla. Zoznam uvedený pre mapu bol [2,3,4,5,6,7,8,9] a pomocou funkcie square () bol výstup z mapy () sme dostali [4, 9, 16, 25, 36, 49, 64, 81].
Funkčná mapa () použije funkčný štvorec () na všetky položky v zozname. Napríklad premenná my_list a aktualizuje zoznam štvorcom každého čísla. Výstup je uložený v premennej updated_list.
Používanie mapy () so zabudovanými funkciami Pythonu
Funkcia Python map () je vstavaná funkcia a dá sa použiť aj s inými vstavanými funkciami dostupnými v Pythone. V príklade použijeme vstavanú funkciu Python round (), ktorá zaokrúhľuje dané hodnoty.
Príklad:
Zoznam, ktorý mám, je my_list = [2,6743,3,63526,4,2325,5,9687967,6,3265,7,6988,8,232,9,6907].
Potrebujem zaokrúhlené hodnoty pre každú položku v zozname. Ako funkciu mapovania () použijeme funkciu 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ýkon:
Funkcia round () sa použije na všetky položky v zozname a vráti späť zoznam so všetkými hodnotami zaokrúhlenými, ako je to znázornené na výstupe.
Použitie mapy () s reťazcom ako iterátorom
Môžeme tiež použiť map () na reťazci. V Pythone reťazec funguje ako pole, takže ho môžeme ľahko použiť vo vnútri mapy ().
V príklade máme funkciu myMapFunc (), ktorá sa stará o prevod daného reťazca na veľké písmená. Funkcia myMapFunc () je daná funkcii map (). Funkcia mapy sa postará o prevod reťazca zadaného na veľké písmená tak, že odovzdá reťazec 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ýkon:
Používanie mapy () s číslami novembra
Pri práci so zoznamom v mape () sa použije zoznam čísel a každé číslo v zozname sa vynásobí číslom 10.
Zoznam, ktorý použijeme, je: [2,3,4,5,6,7,8,9]. Funkcia myMapFunc () sa postará o vynásobenie daného čísla číslom 10. Funkcia je daná na mapovanie spolu so zoznamom.
Príklad:
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))
Výkon:
Výstup, ktorý vidíme, je, že každé číslo v zozname je
vynásobené 10.
Používanie mapy () s Tuple
Tuple je objekt v Pythone, ktorý má položky oddelené čiarkami a uzavreté v okrúhlych zátvorkách. V príklade vezmeme n-ticu s hodnotami reťazca. Funkcia, ktorú použijeme, prevedie dané hodnoty na veľké písmená.
Prí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ýkon:
Výstup, ktorý dostaneme, je n-tica späť a všetky hodnoty v nej sú prevedené na veľké písmená.
Používanie mapy () s Slovníkom
Slovník v Pythone je vytvorený pomocou zložených zátvoriek ({}). Pretože slovník je iterátorom, môžete ho využiť vo vnútri funkcie map (). Teraz použijeme slovník ako iterátor vnútri funkcie map ().
Nasledujúci príklad ukazuje fungovanie iterátora slovníka vo vnútri mapy ()
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))
Výkon:
Používanie mapy () s Setom
V Pythone je umiestnená neusporiadaná kolekcia položiek v zložených zátvorkách (()). Pretože set () je tiež iterátorom, môžete ho využiť vo vnútri funkcie map ().
Tu je pracovný príklad použitia množiny ako iterátora vo vnútri mapy ()
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))
Výkon:
Používanie mapy () s funkciou Lambda
V Pythone sa výrazy lambda používajú na vytvorenie anonymných funkcií. Kľúčové slovo lambda budete musieť použiť rovnako, ako definujete normálne funkcie pomocou def.
Takže v príklade použijeme funkciu lambda vo vnútri mapy (). Funkcia lambda vynásobí každú hodnotu v zozname 10.
Prí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ýkon:
Používanie viacerých iterátorov vo vnútri funkcie map ()
Príklad 1: Prenesenie dvoch iterátorov zoznamu do mapy ()
Do funkcie map () môžete naraz poslať viac ako jeden iterátor, tj zoznam, n-ticu atď.
Napríklad ak chcete pridať dva zoznamy. To isté sa dá urobiť pomocou funkcie map (). Využijeme dva zoznamy my_list1 a my_list2.
V príklade nižšie je prvá položka v mojom zozname1 pridaná k prvej položke v mojom zozname2. Funkcia myMapFunc () prijíma položky my_list1 a my_list2 a vracia súčet oboch.
Tu je pracovný príklad pridania dvoch zadaných zoznamov pomocou funkcie 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))
Výkon:
Príklad 2: Odovzdanie jednej n-tice a iterátora zoznamu do mapy ()
Využijeme zoznam a iterátor n-tice vo funkcii map (). Funkcia sa dáva na mapu - myMapFunc () získa položky zo zoznamu a Tuple. K položkám bude pripojený podčiarkovník (_). Pracovný príklad je uvedený nižšie:
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))
Výkon:
Zhrnutie
- Python map () je vstavaná funkcia, ktorá aplikuje funkciu na všetky položky iterátora dané ako vstup. Napríklad iterátorom môže byť zoznam, n-tica, reťazec atď. A vráti iterovateľný mapový objekt.
- Funkcia map () použije danú funkciu na všetky položky vo vnútri iterátora a vráti iterovateľný mapový objekt, tj n-ticu, zoznam atď.
- Funkcia Python map () je vstavaná funkcia a dá sa použiť aj s inými vstavanými funkciami dostupnými v Pythone.
- Tuple je objekt v Pythone, ktorý má položky oddelené čiarkami a uzavreté v okrúhlych zátvorkách. V príklade bude n-tica s hodnotami reťazca. Funkcia, ktorú použijeme, prevedie dané hodnoty na veľké písmená.
- Slovník v Pythone je vytvorený pomocou zložených zátvoriek ({}). Pretože slovník je iterátorom, môžete ho využiť vo vnútri funkcie map ().
- V Pythone je umiestnená neusporiadaná kolekcia položiek v zložených zátvorkách (()). Pretože set () je tiež iterátorom, môžete ho využiť vo vnútri funkcie map ().
- V Pythone sa na zostavenie anonymných funkcií používajú výrazy lambda (alebo formy lambda). Kľúčové slovo lambda sa musí použiť, ak chcete použiť lambda vo vnútri mapy ().
- Môžete poslať viac ako jeden iterátor, tj zoznam, n-ticu do funkcie map ().