map() în Python

Funcții încorporate Python 3.0+ (strict: 3.14+)

Aplică o funcție fiecărui element dintr-o colecție.

Sintaxă
map(functie, iterabil, *iterabile, strict=False)

Ce face map()

map(f, colectie) produce f(x) pentru fiecare element x. Cu mai multe colecții, funcția primește câte un element din fiecare. Rezultatul este un iterator; îl transformi în listă cu list().

Este cel mai util cu funcții existente: map(int, texte), map(str.strip, randuri). Cu un lambda, o list comprehension este de obicei mai ușor de citit. Din Python 3.14, strict=True verifică dacă toate colecțiile au aceeași lungime.

Parametri

Parametru Descriere
functie Funcția aplicată fiecărui element.
iterabil, *iterabile Una sau mai multe colecții.
strict Opțional (Python 3.14+). Eroare dacă lungimile diferă.

Ce returnează

Un iterator map.

Exemple

Exemplul 1: Conversia unor texte în numere

text = "12 7 30 5"
numere = list(map(int, text.split()))
print(numere, sum(numere))
print(list(map(str.upper, ["iași", "cluj"])))

Rezultat

[12, 7, 30, 5] 54
['IAȘI', 'CLUJ']

Exemplul 2: Două liste deodată

preturi = [4.5, 7, 32.9]
cantitati = [2, 3, 1]
print(list(map(lambda p, c: p * c, preturi, cantitati)))
print(list(map(pow, [2, 3, 4], [3, 2, 1])))

Rezultat

[9.0, 21, 32.9]
[8, 9, 4]

Greșeli frecvente

  • Afișezi direct map(...) și vezi <map object at ...>. Transformă rezultatul cu list().
  • Parcurgi același obiect map de două ori; a doua oară este gol.

Comenzi înrudite

  • filter(): Păstrează doar elementele pentru care o funcție returnează o valoare adevărată.
  • List comprehension: Construiește o listă nouă dintr-o altă colecție, într-un singur rând.
  • lambda: Creează o funcție mică, fără nume, scrisă pe un singur rând.
  • itertools.starmap(): Aplică o funcție pe tupluri, despachetând fiecare tuplu în argumente.