Python funkce map() s PŘÍKLADY

Python map() aplikuje funkci na všechny položky iterátoru zadané jako vstup. Iterátor může být například seznam, n-tice, množina, slovník, řetězec a vrací iterovatelný mapový objekt. Python map() je vestavěná funkce.

Syntax

map(function, iterator1,iterator2 ...iteratorN)

parametry

Zde jsou dvě důležité

  • function: Povinná funkce, která má být přiřazena mapě, která bude aplikována na všechny položky dostupné v iterátoru.
  • iterátor: Iterovatelný povinný objekt. Může to být seznam, n-tice atd. Funkci map() můžete předat více objektů iterátoru.

Návratová hodnota

Funkce map() použije danou funkci na všechny položky uvnitř iterátoru a vrátí iterovatelný objekt mapy, tj. n-tici, seznam atd.

Jak funguje funkce map()?

Funkce map() má dva vstupy jako funkci a iterovatelný objekt. Funkce, která je dána map() je normální funkce a bude iterovat přes všechny hodnoty přítomné v daném iterovatelném objektu.

Představte si například, že máte seznam čísel a chcete najít druhou mocninu každého z čísel.

K získání výstupu potřebujeme funkci, která vrátí druhou mocninu daného čísla. Funkce bude následující:

def square(n):
	return n*n

Seznam položek, které chceme najít ve čtverci, je následující:

my_list = [2,3,4,5,6,7,8,9]

Nyní použijeme vestavěnou funkci map() pythonu k získání druhé mocniny každé z položek v my_list.

Konečný kód je následující:

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))

Výstup:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

Výstupem funkce map(), jak je vidět na výstupu, je objekt mapy zobrazený na obrazovce jako .

K získání konečného výstupu budete muset iterovat výstup z mapy pomocí for-loop nebo pomocí metody list(). Použil jsem list() v kódu, který zobrazuje hodnoty v daném seznamu.

Takže pomocí funkce map() jsme schopni získat druhou mocninu každého čísla. Seznam daný mapě byl [2,3,4,5,6,7,8,9] a pomocí funkce square() byl výstup z map() jsme dostali je [4, 9, 16, 25, 36, 49, 64, 81] .

Funkce map() aplikuje funkci square() na všechny položky v seznamu. Například proměnná my_list a aktualizuje seznam druhou mocninou každého čísla. Out je uložen v proměnné updated_list.

Použití map() s Python vestavěné funkce

Python Funkce map() je vestavěná funkce a lze ji také použít s jinými vestavěnými funkcemi dostupnými v Python. V příkladu využijeme Python round() vestavěná funkce, která zaokrouhluje dané hodnoty.

Příklad:

Seznam, který mám, je můj_seznam = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] .

Potřebuji zaokrouhlené hodnoty pro každou položku v seznamu. Použijeme round() jako funkci 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))

Výstup:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

Funkce round() se použije na všechny položky v seznamu a vrátí seznam se všemi hodnotami zaokrouhlenými, jak je uvedeno ve výstupu.

Použití map() s řetězcem jako iterátor

Můžeme také použít map() na řetězec. V Python, řetězec funguje jako pole, takže jej můžeme snadno použít uvnitř map().

V příkladu máme funkci myMapFunc(), která se stará o převod daného řetězce na velká písmena. Funkce myMapFunc () je dána funkci map(). Funkce map se postará o převod zadaného řetězce na velká písmena předáním řetězce 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="")

Výstup:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

Pomocí map() se seznamem Numbers

Chcete-li pracovat se seznamem v map(), vezme seznam čísel a vynásobí každé číslo v seznamu 10.

Seznam, který budeme používat, je: [2,3,4,5,6,7,8,9]. Funkce myMapFunc () se postará o vynásobení daného čísla 10. Funkce je dána mapovat spolu se seznamem.

Příklad:

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))

Výstup:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

Výstup, který vidíme, je, že každé číslo v seznamu je

vynásobeno 10.

Použití map() s Tuple

N-tice je objekt v Python který má položky oddělené čárkami a uzavřené v kulatých závorkách. V příkladu si vezmeme n-tici s řetězcovými hodnotami. Funkce, kterou použijeme, převede zadané hodnoty na velká písmena.

Příklad:

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))

Výstup:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

Výstup, který dostáváme, je n-tice zpět se všemi hodnotami v něm převedenými na velká písmena.

Použití map() se slovníkem

A slovník v Python je vytvořen pomocí složených závorek ({}). Protože je slovník iterátor, můžete jej použít ve funkci map(). Použijme nyní slovník jako iterátor uvnitř funkce map().

Následující příklad ukazuje fungování slovníkového iterátoru uvnitř 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))

Výstup:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Použití map() s Set

Stanovené v Python je neuspořádaná kolekce položek ve složených závorkách(()). Protože set() je také iterátor, můžete jej použít ve funkci map().

Zde je pracovní příklad použití set jako iterátoru uvnitř 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))

Výstup:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Použití map() s funkcí Lambda

In Pythonlambda výrazy se používají ke konstrukci anonymních funkcí. Budete muset použít klíčové slovo lambda, stejně jako používáte def k definování normálních funkcí.

V příkladu tedy použijeme funkci lambda uvnitř map(). Funkce lambda vynásobí každou hodnotu v seznamu 10.

Příklad:

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))

Výstup:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

Použití více iterátorů uvnitř funkce map().

Příklad 1: Předání dvou iterátorů seznamu do map()

Do funkce map() můžete poslat více než jeden iterátor, tj. seznam, n-tici atd. najednou.

Například pokud chcete přidat dva seznamy. Totéž lze provést pomocí funkce map(). Použijeme dva seznamy my_list1 a my_list2.

V níže uvedeném příkladu je první položka v my_list1 přidána k první položce my_list2. Funkce myMapFunc() přijímá položky my_list1 a my_list2 a vrací součet obou.

Zde je pracovní příklad přidání dvou daných seznamů pomocí funkce 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))

Výstup:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

Příklad 2: Předání jednoho Tuple a iterátoru seznamu do map()

Využijeme seznam a n-ticový iterátor ve funkci map(). Funkce je dána map – myMapFunc() získá položky ze seznamu a Tuple. Položky budou spojeny podtržítkem (_). Pracovní příklad je uveden níže:

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))

Výstup:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

Shrnutí

  • Python map() je vestavěná funkce, která aplikuje funkci na všechny položky iterátoru zadané jako vstup. Iterátor může být například seznam, n-tice, řetězec atd. a vrací iterovatelný objekt mapy.
  • Funkce map() použije danou funkci na všechny položky uvnitř iterátoru a vrátí iterovatelný objekt mapy, tj. n-tici, seznam atd.
  • Python Funkce map() je vestavěná funkce a lze ji také použít s jinými vestavěnými funkcemi dostupnými v Python.
  • N-tice je objekt v Python který má položky oddělené čárkami a uzavřené v kulatých závorkách. V příkladu bude mít n-tici s hodnotami řetězce. Funkce, kterou použijeme, převede zadané hodnoty na velká písmena.
  • Slovník v Python je vytvořen pomocí složených závorek ({}). Protože je slovník iterátor, můžete jej použít ve funkci map().
  • Stanovené v Python je neuspořádaná kolekce položek ve složených závorkách(()). Protože set() je také iterátor, můžete jej použít ve funkci map().
  • In Pythonlambda výrazy (nebo lambda formy) se používají ke konstrukci anonymních funkcí. Takže klíčové slovo lambda se musí použít, když chcete použít lambda uvnitř map().
  • Do funkce map() můžete poslat více než jeden iterátor, tj. seznam, n-tici.