Python map() funktsioon koos NÄIDETEGA
⚡ Nutikas kokkuvõte
Python map() rakendab antud funktsiooni igale itereeritava objektile, näiteks loendile, tuple'ile, hulgale, sõnastikule või stringile. See tagastab laisa kaardi objekti, mille saate teisendada list() abil või itereerida tsükli abil.

Süntaks
map(function, iterator1,iterator2 ...iteratorN)
parameetrid
Siin on kaks olulist parameetrit:
- funktsioon: Kohustuslik funktsioon, mis tuleb anda funktsioonile map() ja mida rakendatakse kõigile iteraatoris saadaolevatele elementidele.
- iteraator: Kohustuslik itereeritav objekt. See võib olla loend, tuple jne. Funktsioonile map() saab edastada mitu iteraatoriobjekti.
Tagasi väärtus
Funktsioon map() rakendab antud funktsiooni kõigile iteraatori sees olevatele elementidele ja tagastab itereeritava kaardiobjekti, st. tuple'i, loendi jne.
Kuidas funktsioon map() töötab?
Funktsioon map() võtab vastu kaks sisendit: funktsiooni ja itereeritava objekti. Funktsioonile map() antud funktsioon on tavaline funktsioon ja see itereerib kõiki itereeritavas objektis olevaid väärtusi.
Oletame näiteks, et teil on arvude loend ja soovite leida iga numbri ruudu.
Väljundi saamiseks vajame funktsiooni, mis tagastab antud arvu ruudu. Funktsioon on järgmine:
def square(n): return n*n
Nende üksuste loend, mille ruutu tahame leida, on järgmine:
my_list = [2,3,4,5,6,7,8,9]
Nüüd kasutame sisseehitatud funktsiooni map(), et leida iga minu_loendi elemendi ruut.
Lõplik kood on järgmine:
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äljund:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
Nagu eespool näha, on funktsiooni map() väljundiks ekraanil kuvatav kaardiobjekt .
Lõppväljundi saamiseks peate map() väljundit itereerima for-tsükli või list() meetodi abil. Olen koodis kasutanud list() funktsiooni antud loendis olevate väärtuste kuvamiseks.
Seega funktsiooni map() abil saame iga arvu ruudu. Funktsioonile map() antud loend oli [2,3,4,5,6,7,8,9] ja funktsiooni square() abil saime väljundiks [4, 9, 16, 25, 36, 49, 64, 81].
Funktsioon map() rakendab funktsiooni square() kõigile loendi elementidele. Näiteks võtab see muutuja my_list ja uuendab loendit iga arvu ruuduga. Väljund salvestatakse muutujasse updated_list.
Kaardi () kasutamine koos Python sisseehitatud funktsioonid
. Python funktsioon map() on sisseehitatud funktsioon ja seda saab kasutada ka teiste sisseehitatud funktsioonidega, mis on saadaval PythonSelles näites kasutame ära Python round() on sisseehitatud funktsioon, mis ümardab antud väärtused.
Näide:
Minu loend on my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Vajan iga loendis oleva elemendi ümardatud väärtusi, seega kasutame map() funktsioonina 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äljund:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
Funktsiooni round() rakendatakse kõigile loendi elementidele ja see tagastab loendi, kus kõik väärtused on ümardatud, nagu väljundis näidatud.
Mapi () kasutamine stringiga iteraatorina
Samuti saame stringil kasutada kaarti (). sisse Python, string toimib nagu massiiv, seega saame seda map() sees hõlpsalt kasutada.
Selles näites on meil funktsioon myMapFunc(), mis teisendab antud stringi suurtäheliseks. Funktsioon myMapFunc() antakse funktsioonile map(). Funktsioon map() teisendab antud stringi suurtäheliseks, edastades stringi funktsioonile 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äljund:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
Kasutades funktsiooni map() koos nimekirjaga Numbers
Loendiga map() töötamiseks võtame numbrite loendi ja korrutame iga loendis oleva arvu 10-ga.
Kasutatav loend on [2,3,4,5,6,7,8,9]. Funktsioon myMapFunc() korrutab antud arvu 10-ga. Funktsioon antakse koos loendiga funktsioonile map().
Näide:
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äljund:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
Näeme väljundit, et iga loendis olev arv korrutatakse 10-ga.
Kaardi() kasutamine koos Tuple'iga
Korteel on objekt sees Python mille üksused on komadega eraldatud ja ümarnurksulgudes. Selles näites võtame stringväärtustega tuupli. Kasutatav funktsioon teisendab antud väärtused suurtähtedeks.
Näide:
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äljund:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Saadud väljund on tuple tagasi, kus kõik selles olevad väärtused on suurtähtedeks teisendatud.
Kaardi () kasutamine sõnastikuga
A sõnastik sisse Python luuakse looksulgude ({}) abil. Kuna sõnastik on iteraator, saab seda funktsiooni map() sees kasutada. Kasutame nüüd sõnastikku iteraatorina funktsiooni map() sees.
Järgnev näide demonstreerib sõnastiku iteraatori toimimist map() funktsioonis:
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äljund:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Kaardi() kasutamine koos Set
Komplekt sisse Python on lokkis nurksulgudes ({}) olevate elementide järjestamata kogum. Kuna set() on samuti iteraator, saab seda kasutada map() funktsiooni sees.
Siin on toimiv näide komplekti kasutamisest iteraatorina map() sees:
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äljund:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Kaardi () kasutamine lambda funktsiooniga
In Python, kasutatakse lambda avaldisi anonüümsete funktsioonide konstrueerimiseks. Peate kasutama lambda märksõna nagu def tavaliste funktsioonide määratlemiseks.
Selles näites kasutame map() funktsioonis lambda funktsiooni. Lambda funktsioon korrutab iga loendi väärtuse 10-ga.
Näide:
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äljund:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Mitme iteraatori kasutamine map() funktsiooni sees
Näide 1: Kahe loenditeraatori edastamine funktsioonile map()
Funktsioonile map() saab korraga saata mitu iteraatorit, st loendi, tuple'i jne.
Näiteks kui soovite lisada kaks loendit, saab sama teha ka funktsiooni map() abil. Me kasutame kahte loendit, my_list1 ja my_list2.
Allolevas näites lisatakse esimene element loendist my_list1 loendi my_list2 esimesele elementile. Funktsioon myMapFunc() võtab elemendid loendist my_list1 ja my_list2 ning tagastab mõlema summa.
Siin on näide kahe antud loendi liitmisest funktsiooni map() abil.
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äljund:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
Näide 2: Ühe Tuple'i ja loenditeraatori edastamine map()-ile
Funktsioonis map() kasutame loendit ja tuple'iteraatorit. Funktsioonile map() antud funktsioon myMapFunc() hangib elemendid loendist ja tuple'ist. Elemendid ühendatakse alakriipsuga (_). Töötav näide on näidatud allpool:
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äljund:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
