Funkce map() v Pythonu

mapa() funkce vrací mapový objekt (což je iterátor) výsledků po aplikaci dané funkce na každou položku dané iterovatelnosti (seznam, n-tice atd.)

Python map() Syntaxe funkce

Syntax : mapa (zábava, iter)

Parametry:

  • zábava: Je to funkce, které mapa předává každý prvek dané iterovatelnosti.
  • iter: Je iterovatelné, co má být mapováno.

POZNÁMKA: Funkci map() můžete předat jednu nebo více iterovatelných.

Vrácení: Vrátí seznam výsledků po aplikaci dané funkce na každou položku dané iterovatelnosti (seznam, n-tice atd.)

POZNÁMKA : Vrácená hodnota z map() (mapový objekt) pak může být předána funkcím jako list() (pro vytvoření seznamu), set() (pro vytvoření sady) .

map() v příkladech Pythonu

Ukázka map() v Pythonu

V tomto příkladu demonstrujeme funkci map() v Krajta .

Python3




# Python program to demonstrate working> # of map.> # Return double of n> def> addition(n):> > return> n> +> n> # We double all numbers using map()> numbers> => (> 1> ,> 2> ,> 3> ,> 4> )> result> => map> (addition, numbers)> print> (> list> (result))>

Výstup

[2, 4, 6, 8] 

map() s výrazy Lambda

Můžeme také použít lambda výrazy s mapou k dosažení výše uvedeného výsledku. V tomto příkladu používáme map() s výrazem lambda.

Python3




# Double all numbers using map and lambda> numbers> => (> 1> ,> 2> ,> 3> ,> 4> )> result> => map> (> lambda> x: x> +> x, numbers)> print> (> list> (result))>

Výstup

[2, 4, 6, 8] 

Přidat dva seznamy pomocí mapy a lambda

V tomto příkladu používáme mapu a lambda k přidání dvou seznamů.

Python3




# Add two lists using map and lambda> numbers1> => [> 1> ,> 2> ,> 3> ]> numbers2> => [> 4> ,> 5> ,> 6> ]> result> => map> (> lambda> x, y: x> +> y, numbers1, numbers2)> print> (> list> (result))>

Výstup

[5, 7, 9] 

Upravte řetězec pomocí map()

V tomto příkladu používáme funkci map() k úpravě řetězce. Můžeme vytvořit mapu z iterovatelného v Pythonu.

Python3




# List of strings> l> => [> 'sat'> ,> 'bat'> ,> 'cat'> ,> 'mat'> ]> # map() can listify the list of strings individually> test> => list> (> map> (> list> , l))> print> (test)>

Výstup

[['s', 'a', 't'], ['b', 'a', 't'], ['c', 'a', 't'], ['m', 'a', 't']] 

Časová složitost : O(n), kde n je počet prvků ve vstupním seznamu l.
Pomocný prostor : O(n)

if Příkaz s map()

V příkladu funkce double_even() zdvojnásobuje sudá čísla a ponechává lichá čísla beze změny. Funkce map() se používá k aplikaci této funkce na každý prvek číselného seznamu a v rámci funkce se používá příkaz if k provedení nezbytné podmíněné logiky.

Python3




# Define a function that doubles even numbers and leaves odd numbers as is> def> double_even(num):> > if> num> %> 2> => => 0> :> > return> num> *> 2> > else> :> > return> num> # Create a list of numbers to apply the function to> numbers> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ]> # Use map to apply the function to each element in the list> result> => list> (> map> (double_even, numbers))> # Print the result> print> (result)> # [1, 4, 3, 8, 5]>

Výstup

[1, 4, 3, 8, 5] 

Časová složitost : O(n)
Pomocná složitost: Na)