Pythoni kaart () rakendab funktsiooni kõigile iteraatori üksustele, mis on sisestatud. Näiteks iteraator võib olla loend, duplett, komplekt, sõnastik, string ja see tagastab korduva kaardiobjekti. Pythoni kaart () on sisseehitatud funktsioon.
Selles õpetuses saate teada:
- Süntaks:
- Kuidas funktsioon map () töötab?
- Kaardi () kasutamine Pythoni sisseehitatud funktsioonidega
- Kaardi () kasutamine iteraatorina stringiga
- Kaardi () kasutamine koos numbrite loendiga
- Kaardi () kasutamine Tuple'iga
- Kaardi () kasutamine koos sõnastikuga
- Kaardi () kasutamine koos seadega
- Kaardi () kasutamine Lambda funktsiooniga
- Funktsiooni Mitme iteraatori kasutamine kaardi () sees
Süntaks:
map(function, iterator1,iterator2… iteratorN)
Parameetrid
Siin on kaks olulist
- funktsioon: kaardile antav kohustuslik funktsioon, mida rakendatakse kõigile iteraatoris saadaolevatele üksustele.
- iteraator: korduv sundobjekt. See võib olla loend, dupleks jne. Funktsioonile map () saab edastada mitu iteraatori objekti.
Tagastusväärtus
Funktsioon map () rakendab antud funktsiooni kõigile iteraatori sees olevatele üksustele ja tagastab itereeritava kaardiobjekti, st dupleksi, loendi jne.
Kuidas funktsioon map () töötab?
Funktsioon map () võtab kaks sisendit funktsioonina ja korduva objektina. Kaardile () antud funktsioon on tavaline funktsioon ja see kordab kõiki antud itereeritavas objektis olevaid väärtusi.
Mõelge näiteks sellele, et teil on numbrite 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
Ruudu leidmiseks soovime lugeda järgmist:
my_list = [2,3,4,5,6,7,8,9]
Kasutagem nüüd map () pythoni sisseehitatud funktsiooni, et saada kõigi my_list'i üksuste ruut.
Lõplik kood on järgmine:
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äljund:
Funktsiooni map () väljund, nagu väljundis näha, on kaardiobjekt, mida kuvatakse ekraanil
Lõpliku väljundi saamiseks peate kaardi väljundi itereerima for-loop või meetodi list () abil. Olen koodis kasutanud list (), mis kuvab antud loendis olevad väärtused.
Nii et funktsiooni map () abil saame iga numbri ruudu. Kaardile antud loend oli [2,3,4,5,6,7,8,9] ja funktsiooni ruut () kasutades väljund kaardilt () saime on [4, 9, 16, 25, 36, 49, 64, 81].
Funktsioonikaart () rakendab funktsiooni ruudu () kõikidele loendis olevatele üksustele. Näiteks muutuja my_list ja värskendab loendit iga numbri ruuduga. Väljund salvestatakse muutujas uuendatud_loend.
Kaardi () kasutamine Pythoni sisseehitatud funktsioonidega
Funktsioon Python map () on sisseehitatud funktsioon ja seda saab kasutada ka koos teiste Pythonis saadaval olevate sisseehitatud funktsioonidega. Selles näites kasutame Python round () sisseehitatud funktsiooni, mis ümardab antud väärtused.
Näide:
Minu nimekiri on minu_loend = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907].
Vajan iga loendis oleva üksuse ümardatud väärtusi. Kaardi () funktsioonina kasutame ringi ().
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:
Funktsioon round () rakendatakse loendi kõikidele üksustele ja see tagastab loendi, kus kõik väärtused on ümardatud, nagu on näidatud väljundis.
Kaardi () kasutamine iteraatorina stringiga
Samuti võime stringil kasutada kaarti (). Pythonis toimib string massiivina, nii et saame seda kaardi () sees hõlpsalt kasutada.
Selles näites on meil funktsioon myMapFunc (), mis hoolitseb antud stringi suureks muutmise eest. Funktsioon myMapFunc () antakse funktsioonile map (). Kaardifunktsioon hoolitseb suurte tähtedega antud stringi teisendamise eest, edastades stringi myMapFunc () -le.
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:
Kaardi () kasutamine koos numbrite loendiga
Kaardil () oleva loendiga töötamiseks võetakse numbrite loend ja korrutatakse loendis olevad arvud kümnega.
Nimekiri, mida me kasutama hakkame, on: [2,3,4,5,6,7,8,9]. Funktsioon myMapFunc () hoolitseb antud arvu korrutamise eest kümnega. Funktsioon antakse kaardistada koos loendiga.
Näide:
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äljund:
Väljund, mida näeme, on see, et loendis on iga number
korrutatakse 10-ga.
Kaardi () kasutamine Tuple'iga
Tuple on Pythoni objekt, millel on komadega eraldatud ja ümaratesse sulgudesse suletud üksused. Näites võtame stringi väärtustega dupleksi. Funktsioon, mida kasutame, 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:
Saadud väljund on kahekordne tagakülg, kus kõik selles olevad väärtused teisendatakse suurtähtedeks.
Kaardi () kasutamine koos sõnastikuga
Pythoni sõnastik luuakse lokkisulgudes ({}). Kuna sõnastik on kordaja, saate seda kasutada funktsiooni map () sees. Kasutagem nüüd kaardi () funktsioonis iteraatorina sõnastikku.
Järgmine näide näitab sõnastiku iteraatori tööd kaardil ()
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äljund:
Kaardi () kasutamine koos seadega
Pythonis määratud on lokkis sulgudes olevate üksuste korrastamata kogum (()). Kuna set () on ka iteraator, saate seda kasutada funktsiooni map () sees.
Siin on toimiv näide komplekti kasutamisest iteraatorina kaardi sees ()
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äljund:
Kaardi () kasutamine Lambda funktsiooniga
Pythonis kasutatakse anonüümsete funktsioonide koostamiseks lambda-väljendeid. Peate kasutama lambda märksõna samamoodi nagu def-ga tavaliste funktsioonide määratlemiseks.
Nii et näites kasutame kaardi sees olevat funktsiooni lambda (). Funktsioon lambda korrutab loendis iga 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:
Funktsiooni Mitme iteraatori kasutamine kaardi () sees
Näide 1: kahe loendi iteraatori edastamine kaardile ()
Funktsioonile map () saate korraga saata rohkem kui ühe iteraatori, st loendi, duplikaadi jne.
Näiteks kui soovite lisada kaks loendit. Sama saab teha kaardi () funktsiooni abil. Kasutame kahte loendit my_list1 ja my_list2.
Allpool toodud näites lisatakse my_list1 esimene üksus my_list2 esimesele üksusele. Funktsioon myMapFunc () võtab sisse my_list1 ja my_list2 üksused ning tagastab mõlema summa.
Siin on toimiv näide kahe antud loendi lisamise kohta funktsiooni map () abil.
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äljund:
Näide 2: ühe Tuple'i ja loendi iteraatori edastamine kaardile ()
Kasutame kaardi () funktsioonis loendit ja kahekordset kordajat. Funktsioon antakse kaardile - myMapFunc () saab loendist üksused ja Tuple. Üksused liidetakse alakriipsuga (_). Toimiv näide on järgmine:
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äljund:
Kokkuvõte
- Pythoni kaart () on sisseehitatud funktsioon, mis rakendab funktsiooni kõigile sisendina antud iteraatori üksustele. Näiteks iteraator võib olla loend, dupleks, string jne ja see tagastab itereeritava kaardiobjekti.
- Funktsioon map () rakendab antud funktsiooni kõigile iteraatori sees olevatele üksustele ja tagastab itereeritava kaardiobjekti, st dupleksi, loendi jne.
- Funktsioon Python map () on sisseehitatud funktsioon ja seda saab kasutada ka koos teiste Pythonis saadaval olevate sisseehitatud funktsioonidega.
- Tuple on Pythoni objekt, millel on komadega eraldatud ja ümaratesse sulgudesse suletud üksused. Selles näites võetakse string stringide väärtustega. Funktsioon, mida kasutame, teisendab antud väärtused suurtähtedeks.
- Pythoni sõnastik luuakse lokkisulgudes ({}). Kuna sõnastik on kordaja, saate seda kasutada funktsiooni map () sees.
- Pythonis määratud on lokkis sulgudes olevate üksuste korrastamata kogum (()). Kuna set () on ka iteraator, saate seda kasutada funktsiooni map () sees.
- Pythonis kasutatakse anonüümsete funktsioonide koostamiseks lambda väljendeid (või lambda vorme). Nii et lambda märksõna tuleb kasutada, kui soovite kaarti () kasutada lambda.
- Funktsioonile map () saab saata mitu iteraatorit, st loendi ja duplikaadi.