Python map() függvény példákkal
⚡ Okos összefoglaló
Python A map() egy adott függvényt alkalmaz egy iterálható objektum minden elemére, például listára, tuple-re, halmazra, szótárra vagy karakterláncra. Egy lusta map objektumot ad vissza, amelyet a list() függvénnyel konvertálhatsz, vagy egy ciklus segítségével iterálhatsz.
Szintaxis
map(function, iterator1,iterator2 ...iteratorN)
paraméterek
Itt van két fontos paraméter:
- funkció: Egy kötelezően megadandó függvény a map() függvénynek, amely az iterátorban elérhető összes elemre érvényes lesz.
- iterátor: Kötelezően iterálható objektum. Lehet lista, tuple stb. Több iterátor objektumot is átadhatsz a map() függvénynek.
Visszatérési érték
A map() függvény az adott függvényt az iterátoron belüli összes elemre alkalmazza, és egy iterálható map objektumot ad vissza, azaz egy tuple-t, egy listát stb.
Hogyan működik a map() függvény?
A map() függvény két bemenetet fogad el: egy függvényt és egy iterálható objektumot. A map() függvénynek adott függvény egy normál függvény, amely az iterálható objektumban található összes értékre iterál.
Tegyük fel például, hogy van egy számlistája, és meg szeretné találni az egyes számok négyzetét.
A kimenet megszerzéséhez szükségünk van egy függvényre, amely visszaadja a megadott szám négyzetét. A függvény a következő:
def square(n): return n*n
Az elemek listája, amelyek négyzetét meg akarjuk találni, a következő:
my_list = [2,3,4,5,6,7,8,9]
Most használjuk a map() beépített függvényt a my_list elemeinek négyzetének kiszámításához.
A végső kód a következő:
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))
output:
<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]
A map() függvény kimenete, ahogy fentebb látható, egy térképobjektum, amely a képernyőn a következőképpen jelenik meg: .
A map() kimenetét egy for ciklussal vagy a list() metódussal kell iterálnod a végső kimenet eléréséhez. A list() metódust használtam a kódban az adott listán belüli értékek megjelenítéséhez.
Tehát a map() függvénnyel megkaphatjuk az egyes számok négyzetét. A map()-nak adott lista a következő volt: [2,3,4,5,6,7,8,9], és a square() függvénnyel kapott kimenet: [4, 9, 16, 25, 36, 49, 64, 81].
A map() függvény a square() függvényt alkalmazza a lista összes elemére. Például a my_list változó értékét veszi, és frissíti a listát az egyes számok négyzetével. A kimenet az updated_list változóban tárolódik.
A map() használata a következővel Python beépített funkciók
Az Python A map() függvény egy beépített függvény, és más beépített funkciókkal is használható PythonEbben a példában a következőt fogjuk használni: Python round() beépített függvény, ami kerekíti a megadott értékeket.
Példa:
A listám a következő: my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Szükségem van a listában szereplő összes elem kerekített értékeire, ezért a round() függvényt fogjuk használni a map() függvényhez.
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))
output:
<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]
A round() függvény a lista összes elemére vonatkozik, és egy kerekített listát ad vissza, ahogy a kimeneten is látható.
A map() használata egy karakterlánccal iterátorként
A map()-t is használhatjuk egy karakterláncon. In Python, egy karakterlánc tömbként viselkedik, így könnyen használhatjuk a map() függvényen belül.
Ebben a példában van egy myMapFunc() függvényünk, amely a megadott karakterlánc nagybetűssé alakításáért felel. A myMapFunc() függvényt a map() függvénynek adjuk át. A map() függvény a megadott karakterlánc nagybetűssé alakításáért a karakterlánc myMapFunc()-nek való átadásával gondoskodik.
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="")
output:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
A map() függvény használata egy listával Numbers
Ahhoz, hogy egy listával dolgozzunk a map() függvényben, fogunk egy számokból álló listát, és minden benne lévő számot megszorzunk 10-zel.
A használandó lista a [2,3,4,5,6,7,8,9]. A myMapFunc() függvény a megadott szám 10-zel való szorzását végzi. A függvényt a listával együtt a map() függvénynek adjuk meg.
Példa:
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))
output:
<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]
A kimenet az, hogy a listában szereplő minden számot megszorozunk 10-zel.
A map() használata a Tuple-vel
A tuple egy objektum benne Python ...amely vesszővel elválasztott és kerek zárójelben lévő elemeket tartalmaz. Ebben a példában egy karakterlánc értékekkel rendelkező tuple-t fogunk venni. A használt függvény nagybetűssé alakítja a megadott értékeket.
Példa:
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))
output:
<map object at 0x0000009C3C3A16A0> ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
A kapott kimenet egy tuple, amelyben az összes érték nagybetűsre van konvertálva.
A map() használata a szótárral
A szótárban Python kapcsos zárójelek ({}) használatával jön létre. Mivel a szótár egy iterátor, a map() függvényen belül használható. Most használjunk egy szótárt iterátorként a map() függvényen belül.
A következő példa egy szótáriterátor működését mutatja be a map() függvényen belül:
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))
output:
<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
A map() használata a Set-tel
Egy meghatározott Python A kapcsos zárójelben ({}) lévő elemek rendezetlen gyűjteménye. Mivel a set() egy iterátor is, a map() függvényen belül használható.
Íme egy működő példa arra, hogyan használhatunk egy halmazt iterátorként a map() függvényen belül:
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))
output:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
A map() használata Lambda függvénnyel
In Python, a lambda kifejezéseket anonim függvények létrehozására használják. A lambda kulcsszót ugyanúgy kell használnia, mint a def-et a normál függvények meghatározásához.
Ebben a példában tehát a map() függvényen belül fogjuk használni a lambda függvényt. A lambda függvény a lista minden értékét megszorozza 10-zel.
Példa:
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))
output:
<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]
Több iterátor használata a map() függvényen belül
1. példa: Két lista iterátor átadása a map() függvénynek
Egyszerre több iterátort is küldhetsz a map() függvénynek, azaz egy listát, egy tuple-t stb.
Például, ha két listát szeretnél hozzáadni, ugyanezt megteheted a map() függvénnyel. Két listát fogunk használni, a my_list1-et és a my_list2-t.
Az alábbi példában a my_list1 első eleme hozzáadódik a my_list2 első eleméhez. A myMapFunc() függvény a my_list1 és my_list2 elemeit veszi alapul, és visszaadja mindkettő összegét.
Íme egy működő példa két adott lista összeadására a map() függvénnyel.
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))
output:
<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]
2. példa: Egy Tuple és egy lista iterátor átadása a map() függvénynek
A map() függvényben egy listát és egy tuple iterátort fogunk használni. A map() függvénynek adott myMapFunc() függvény a listából és a tuple-ből fogja kiolvasni az elemeket. Az elemeket aláhúzásjellel (_) fogjuk összekapcsolni. A működő példa alább látható:
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))
output:
<map object at 0x00000059F37BB4E0> ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

