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 je voor dat je een lijst met getallen hebt en dat je het kwadraat van elk van de getallen wilt vinden.

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 functie map() is, zoals te zien in de uitvoer, een kaartobject 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 ingebouwde Python-functies

De 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 de ingebouwde Python round()-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 een lijst met getallen

Om met de lijst in map() te werken, 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 tuple is een object in Python met items gescheiden door komma's en ingesloten in een ronde brackets. In het voorbeeld nemen we een tupel met stringwaarden. De functie die we zullen gebruiken, converteert de gegeven 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 is gemaakt met krullend brackets({}). Omdat het woordenboek een iterator is, kunt u er gebruik van maken in de functie map(). Laten we nu een woordenboek gebruiken als iterator in de functie map().

Following voorbeeld toont de werking van woordenboekiterator in 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

Set in Python is een ongeordende verzameling items in gekruld brackets(()). Omdat set() ook een iterator is, kun je er gebruik van maken in de functie map().

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 Python worden 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']

Samengevat

  • 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.
  • De Python map()-functie is een ingebouwde functie en kan ook worden gebruikt met andere ingebouwde functies die beschikbaar zijn in Python.
  • Een tuple is een object in Python met items gescheiden door komma's en ingesloten in een ronde brackets. In het voorbeeld wordt een tupel met stringwaarden genomen. De functie die we zullen gebruiken, converteert de gegeven waarden naar hoofdletters.
  • Een woordenboek in Python wordt gemaakt met behulp van curly brackets({}). Omdat het woordenboek een iterator is, kunt u er gebruik van maken in de functie map().
  • Set in Python is een ongeordende verzameling items in gekruld brackets(()). Omdat set() ook een iterator is, kun je er gebruik van maken in de functie map().
  • In Python worden 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.