Python map() functie met VOORBEELDEN
Python map() past een functie toe op alle items van een iterator die als invoer worden opgegeven. Een iterator kan bijvoorbeeld een lijst, een tupel, een set, een woordenboek of een tekenreeks zijn, en retourneert een itereerbaar kaartobject. Python map() is een ingebouwde functie.
Syntaxis
map(function, iterator1,iterator2 ...iteratorN)
parameters
Hier zijn er twee belangrijk
- functie: Een verplichte functie die aan de kaart moet worden gegeven en die wordt toegepast op alle items die beschikbaar zijn in de iterator.
- iterator: een itereerbaar verplicht object. Het kan een lijst, een tuple, etc. zijn. U kunt meerdere iteratorobjecten doorgeven aan de functie map().
Winstwaarde
De functie map() gaat de gegeven functie toepassen op alle items in de iterator en retourneert een itereerbaar kaartobject, dat wil zeggen een tupel, een lijst, enz.
Hoe werkt de functie map()?
De functie map() heeft twee invoergegevens nodig als functie en als itereerbaar object. De functie die aan map() wordt gegeven, is een normale functie en itereert over alle waarden die aanwezig zijn in het gegeven itereerbare object.
Stel dat u een lijst met getallen hebt en u wilt het kwadraat van elk getal berekenen.
Om de uitvoer te krijgen, hebben we de functie nodig die het kwadraat van het gegeven getal retourneert. De functie zal als volgt zijn:
def square(n): return n*n
De lijst met items die we op het vierkant willen vinden, is als volgt:
my_list = [2,3,4,5,6,7,8,9]
Laten we nu de ingebouwde functie van map() Python gebruiken om het kwadraat van elk van de items in my_list te krijgen.
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 te zien in de uitvoer, is een map-object dat op het scherm wordt weergegeven als .
U zult de uitvoer van de kaart moeten herhalen met behulp van een for-loop of met behulp van de list()-methode om de uiteindelijke uitvoer te krijgen. Ik heb list() gebruikt in de code die de waarden in de gegeven lijst weergeeft.
Met behulp van de functie map() kunnen we dus het kwadraat van elk getal verkrijgen. De lijst die aan map werd gegeven was [2,3,4,5,6,7,8,9] en met behulp van de functie square() werd de uitvoer van map() die we hebben is [4, 9, 16, 25, 36, 49, 64, 81] .
De functie map() past de functie square() toe op alle items in de lijst. Bijvoorbeeld de variabele my_list en werkt de lijst bij met het kwadraat van elk getal. De out wordt opgeslagen in de bijgewerkte_listvariabele.
Map() gebruiken met Python ingebouwde functies
Python map() functie is een ingebouwde functie en kan ook worden gebruikt met andere ingebouwde functies die beschikbaar zijn in Python. In het voorbeeld gaan we gebruik maken van Python round() ingebouwde functie die de gegeven waarden rondt.
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. We zullen round() gebruiken als de 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 weergegeven in de uitvoer.
Map() gebruiken met een string als iterator
We kunnen ook gebruik maken van map() op een string. In Python, fungeert een string als een array, zodat we deze gemakkelijk binnen de map() kunnen gebruiken.
In het voorbeeld hebben we een functie myMapFunc() die ervoor zorgt dat de gegeven string naar hoofdletters wordt geconverteerd. De functie myMapFunc () wordt gegeven aan de map()-functie. De map-functie zorgt voor het converteren van de gegeven string naar hoofdletters door de string 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 listof Numbers
Om met de lijst te werken in map() wordt een lijst met getallen genomen en wordt elk getal in de lijst met 10 vermenigvuldigd.
De lijst die we gaan gebruiken is: [2,3,4,5,6,7,8,9]. De functie myMapFunc () zorgt ervoor dat het opgegeven getal met 10 wordt vermenigvuldigd. De functie wordt gegeven om samen met de lijst in kaart te brengen.
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]
De output die we zien is dat elk nummer in de lijst dat is
vermenigvuldigd met 10.
Map() gebruiken met Tuple
Een tupel is een object in Python die items heeft die gescheiden zijn door komma's en tussen ronde haakjes staan. In het voorbeeld nemen we een tuple met stringwaarden. De functie die we gebruiken, converteert de opgegeven waarden 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 uitvoer die we krijgen is een tupel terug waarbij alle waarden daarin worden omgezet in hoofdletters.
Map() gebruiken met woordenboek
A woordenboek in Python wordt gemaakt met behulp van accolades ({}). Omdat het woordenboek een iterator is, kunt u het gebruiken in de map()-functie. Laten we nu een woordenboek gebruiken als iterator in de map()-functie.
Het volgende voorbeeld toont de werking van de woordenboekiterator binnen map()
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
Instellen Python is een ongeordende verzameling items tussen accolades(()). Omdat set() ook een iterator is, kunt u er gebruik van maken binnen de map()-functie.
Hier is een werkend voorbeeld van het gebruik van set als iterator in 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 het voorbeeld gaan we dus de lambda-functie in de 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 in de functie map().
Voorbeeld 1: Twee lijstiterators doorgeven aan map()
U kunt meer dan één iterator, dwz een lijst, een tupel, enz., allemaal tegelijkertijd naar de functie map() sturen.
Als u bijvoorbeeld twee lijsten wilt toevoegen. Hetzelfde kan worden gedaan met behulp van de map() functie. We gaan gebruik maken van twee lijsten mijn_lijst1 en mijn_lijst2.
In het onderstaande voorbeeld wordt het eerste item in mijn_lijst1 toegevoegd aan het eerste item van mijn_lijst2. De functie myMapFunc() neemt items van mijn_lijst1 en mijn_lijst2 over en retourneert de som van beide.
Hier is het werkende voorbeeld van het toevoegen van twee gegeven lijsten met behulp van de functie map().
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: Eén Tuple en een lijstiterator doorgeven aan map()
We gaan gebruik maken van een lijst en een tupel-iterator in de functie map(). De functie wordt gegeven aan map – myMapFunc() haalt de items uit de lijst en Tuple. De items worden samengevoegd met een onderstrepingsteken (_). Het werkvoorbeeld is zoals hieronder weergegeven:
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']
Samenvatting
- Python map() is een ingebouwde functie die een functie toepast op alle items van een iterator die als invoer worden opgegeven. Een iterator kan bijvoorbeeld een lijst, een tupel, een string, enz. zijn en retourneert een itereerbaar kaartobject.
- De functie map() gaat de gegeven functie toepassen op alle items in de iterator en retourneert een itereerbaar kaartobject, dat wil zeggen een tupel, een lijst, enz.
- Python map() functie is een ingebouwde functie en kan ook worden gebruikt met andere ingebouwde functies die beschikbaar zijn in Python.
- Een tupel is een object in Python die items heeft die gescheiden zijn door komma's en tussen ronde haakjes staan. In het voorbeeld zal een tuple met stringwaarden worden gebruikt. De functie die we zullen gebruiken, zal de opgegeven waarden omzetten naar hoofdletters.
- Een woordenboek erin Python wordt gemaakt met behulp van accolades ({}). Omdat het woordenboek een iterator is, kunt u er gebruik van maken in de map()-functie.
- Instellen Python is een ongeordende verzameling items tussen accolades(()). Omdat set() ook een iterator is, kunt u er gebruik van maken binnen de map()-functie.
- In Pythonworden lambda-expressies (of lambda-vormen) gebruikt om anonieme functies te construeren. Het trefwoord lambda moet dus worden gebruikt als u lambda in de kaart () wilt gebruiken.
- U kunt meer dan één iterator, dwz een lijst of een tupel, naar de functie map() sturen.