Python map()-functie met voorbeelden
โก Slimme samenvatting
Python `map()` past een gegeven functie toe op elk item van een iterable, zoals een lijst, tuple, set, dictionary of string. Het retourneert een 'lazy map'-object dat je kunt converteren met `list()` of waar je doorheen kunt itereren met een lus.

Syntaxis
map(function, iterator1,iterator2 ...iteratorN)
Kenmerken
Hier volgen twee belangrijke parameters:
- functie: Een verplichte functie die aan map() moet worden meegegeven en die wordt toegepast op alle items in de iterator.
- iterator: Een verplicht iterable object. Dit kan een lijst, een tuple, enzovoort zijn. Je kunt meerdere iterator-objecten aan de map()-functie doorgeven.
Winstwaarde
De functie `map()` past de gegeven functie toe op alle items in de iterator en retourneert een iterable map-object, bijvoorbeeld een tuple, een lijst, enzovoort.
Hoe werkt de functie map()?
De functie `map()` neemt twee invoerwaarden: een functie en een iterable object. De functie die aan `map()` wordt gegeven, is een normale functie die alle waarden in het iterable object doorloopt.
Stel dat u een lijst met getallen hebt en u wilt het kwadraat van elk getal berekenen.
Om de uitvoer te krijgen, hebben we een functie nodig die het kwadraat van het gegeven getal retourneert. De functie is als volgt:
def square(n): return n*n
De lijst met items waarvoor we het kwadraat willen vinden, is als volgt:
my_list = [2,3,4,5,6,7,8,9]
Laten we nu de ingebouwde functie map() gebruiken om het kwadraat van elk item in my_list te berekenen.
De uiteindelijke code is als volgt:
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]
De uitvoer van de map()-functie, zoals hierboven weergegeven, is een kaartobject dat op het scherm wordt getoond als .
Je moet de uitvoer van `map()` herhalen met behulp van een `for`-lus of de `list()`-methode om de uiteindelijke uitvoer te krijgen. Ik heb in de code `list()` gebruikt om de waarden in de gegeven lijst weer te geven.
Met behulp van de map()-functie kunnen we het kwadraat van elk getal berekenen. De lijst die aan map() werd gegeven was [2,3,4,5,6,7,8,9], en met behulp van de functie square() kregen we als uitvoer [4, 9, 16, 25, 36, 49, 64, 81].
De functie `map()` past de functie `square()` toe op alle items in de lijst. Zo neemt de functie bijvoorbeeld de variabele `my_list` en vult deze aan met het kwadraat van elk getal. De uitvoer wordt opgeslagen in de variabele `updated_list`.
Map() gebruiken met Python ingebouwde functies
De Python map() functie is een ingebouwde functie en kan ook worden gebruikt met andere ingebouwde functies die beschikbaar zijn in PythonIn dit voorbeeld gaan we gebruikmaken van de Python De ingebouwde functie `round()` rondt de gegeven waarden af.
Voorbeeld:
De lijst die ik heb is my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Ik heb de afgeronde waarden nodig voor elk item in de lijst, dus we gebruiken round() als functie voor map().
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]
De functie `round()` wordt toegepast op alle items in de lijst en retourneert een lijst met alle waarden afgerond, zoals in de uitvoer te zien is.
Map() gebruiken met een string als iterator
We kunnen ook gebruik maken van map() op een string. In PythonEen string gedraagt โโzich als een array, dus we kunnen hem gemakkelijk gebruiken binnen map().
In dit voorbeeld hebben we een functie `myMapFunc()` die de gegeven tekenreeks omzet naar hoofdletters. De functie `myMapFunc()` wordt doorgegeven aan de functie `map()`. De functie `map()` zorgt er vervolgens voor dat de gegeven tekenreeks naar hoofdletters wordt omgezet door deze door te geven aan `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="")
Output:
<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!
map() gebruiken met een lijst Numbers
Om met een lijst te werken in map(), nemen we een lijst met getallen en vermenigvuldigen we elk getal in de lijst met 10.
De lijst die we gaan gebruiken is [2,3,4,5,6,7,8,9]. De functie myMapFunc() zorgt ervoor dat het gegeven getal met 10 wordt vermenigvuldigd. De functie wordt samen met de lijst aan map() meegegeven.
Voorbeeld:
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]
Het resultaat dat we zien, is dat elk getal in de lijst met 10 wordt vermenigvuldigd.
Map() gebruiken met Tuple
Een tupel is een object in Python Een tuple met door komma's gescheiden elementen tussen ronde haakjes. In dit voorbeeld nemen we een tuple met tekenreekswaarden. De functie die we gebruiken, zet de gegeven waarden om naar hoofdletters.
Voorbeeld:
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']
De output die we krijgen is een tuple waarin alle waarden zijn omgezet naar hoofdletters.
Map() gebruiken met woordenboek
A woordenboek in Python wordt gemaakt met behulp van accolades ({}). Omdat het woordenboek een iterator is, kun je het gebruiken binnen de map()-functie. Laten we nu een woordenboek als iterator gebruiken binnen map().
Het volgende voorbeeld laat zien hoe een dictionary-iterator werkt binnen de map()-functie:
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]
Map() gebruiken met Set
Een set in Python is een ongeordende verzameling items tussen accolades ({}). Omdat set() ook een iterator is, kun je deze gebruiken binnen de map()-functie.
Hier volgt een werkend voorbeeld van het gebruik van een set als iterator binnen 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))
Output:
<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]
Map() gebruiken met Lambda-functie
In Pythonworden lambda-expressies gebruikt om anonieme functies te construeren. U zult het trefwoord lambda moeten gebruiken, net zoals u def gebruikt om normale functies te definiรซren.
In dit voorbeeld gaan we de lambda-functie binnen map() gebruiken. De lambda-functie vermenigvuldigt elke waarde in de lijst met 10.
Voorbeeld:
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]
Meerdere iterators gebruiken binnen de map()-functie
Voorbeeld 1: Twee lijstiterators doorgeven aan map()
Je kunt meerdere iterators, zoals een lijst, een tuple, enzovoort, tegelijkertijd naar de map()-functie sturen.
Als je bijvoorbeeld twee lijsten wilt optellen, kan dat met de functie `map()`. We gaan twee lijsten gebruiken, `my_list1` en `my_list2`.
In het onderstaande voorbeeld wordt het eerste item in my_list1 opgeteld bij het eerste item van my_list2. De functie myMapFunc() neemt items van my_list1 en my_list2 als invoer en retourneert de som van beide.
Hier volgt een werkend voorbeeld van het optellen van twee gegeven lijsten met behulp van de map()-functie.
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]
Voorbeeld 2: Een tuple en een lijstiterator doorgeven aan map()
We gaan in de `map()`-functie gebruikmaken van een lijst- en een tuple-iterator. De functie die aan `map()` wordt meegegeven, `myMapFunc()`, haalt de items uit de lijst en de tuple. De items worden samengevoegd met een underscore (_). Een werkend voorbeeld is hieronder te zien:
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']
