Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques
Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques
La fonction intégrée map() de Python applique une fonction à chaque élément d'un itérable (liste, tuple, ensemble, chaîne, dictionnaire, etc.) et renvoie un nouvel itérable. C'est une pierre angulaire de la programmation fonctionnelle en Python.
Ce que vous apprendrez
- Syntaxe et paramètres de base
- Comment
map()fonctionne sous le capot - Utiliser
map()avec les fonctions intégrées - Appliquer
map()aux chaînes, listes, tuples, dictionnaires et ensembles - Exploiter les expressions lambda avec
map() - Combiner plusieurs itérateurs en un seul appel
Syntaxe
map(fonction, iterable1, iterable2, ... iterableN)
Paramètres
- fonction : Un appelable obligatoire qui sera appliqué à chaque élément.
- itérable(s) : Un ou plusieurs itérables. La fonction reçoit un élément de chaque itérable par appel.
Valeur de retour
Le résultat est un objet map — un itérable paresseux qui produit les éléments transformés. Convertissez-le en liste, tuple ou ensemble pour consommer les valeurs.
Comment map() fonctionne
Voici un exemple simple qui met au carré chaque nombre d'une liste.
def carre(n):
return n * n
ma_liste = [2, 3, 4, 5, 6, 7, 8, 9]
mis_a_jour = map(carre, ma_liste)
print(list(mis_a_jour)) # [4, 9, 16, 25, 36, 49, 64, 81]
L'objet map est paresseux ; le convertir en liste force l'évaluation.
Utiliser map() avec les fonctions intégrées
Combinez map() avec n'importe quelle fonction intégrée qui accepte un seul argument. Par exemple, arrondir des nombres flottants :
valeurs = [2.6743, 3.63526, 4.2325, 5.9687967, 6.3265, 7.6988, 8.232, 9.6907] valeurs_arrondies = map(round, valeurs) print(list(valeurs_arrondies)) # [3, 4, 4, 6, 6, 8, 8, 10]
Map sur les chaînes
Les chaînes sont itérables, donc map() peut transformer chaque caractère ou mot.
def en_majuscules(s):
return s.upper()
texte = "bienvenue sur les tutoriels guru99 !"
print("".join(map(en_majuscules, texte))) # BIENVENUE SUR LES TUTORIELS GURU99 !
Map sur les listes de nombres
def fois_dix(n):
return n * 10
nombres = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(fois_dix, nombres))) # [20, 30, 40, 50, 60, 70, 80, 90]
Map sur les tuples
def en_majuscules_str(s):
return s.upper()
langages = ("php", "java", "python", "c++", "c")
print(list(map(en_majuscules_str, langages))) # ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Map sur les dictionnaires et ensembles
Lorsqu'on itère sur un dictionnaire, map() reçoit ses clés. Pour un ensemble, l'ordre est arbitraire.
def fois_dix(n):
return n * 10
ensemble_exemple = {2, 3, 4, 5, 6, 7, 8, 9}
print(sorted(map(fois_dix, ensemble_exemple))) # [20, 30, 40, 50, 60, 70, 80, 90]
Utiliser les fonctions lambda
Les fonctions anonymes gardent le code concis :
nombres = [2, 3, 4, 5, 6, 7, 8, 9] print(list(map(lambda x: x * 10, nombres))) # [20, 30, 40, 50, 60, 70, 80, 90]
Itérateurs multiples
Exemple 1 : Additionner deux listes
def additionner(a, b):
return a + b
liste1 = [2, 3, 4, 5, 6, 7, 8, 9]
liste2 = [4, 8, 12, 16, 20, 24, 28]
print(list(map(additionner, liste1, liste2))) # [6, 11, 16, 21, 26, 31, 36]
Exemple 2 : Concaténer éléments de liste et tuple
def concatener(a, b):
return f"{a}_{b}"
lettres = ['a', 'b', 'b', 'd', 'e']
marques = ('PHP', 'Java', 'Python', 'C++', 'C')
print(list(map(concatener, lettres, marques))) # ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
Points clés à retenir
map()transforme chaque élément d'un itérable avec une fonction donnée.- Elle renvoie un itérateur paresseux ; convertissez en
list,tupleousetpour matérialiser les résultats. - Compatible avec tout appelable — fonctions intégrées, fonctions utilisateur et lambdas.
- Supporte plusieurs itérables ; la fonction doit accepter un nombre correspondant d'arguments.
- Idéal pour un code propre, de style fonctionnel, et pour traiter efficacement de grands ensembles de données.
Python
- Fonctions lambda en Python : Guide pratique des fonctions anonymes
- Générateurs Python : itération efficace et cas d'utilisation avancés
- Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
- Maîtriser les décorateurs Python : améliorer les fonctions avec des techniques expertes
- Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
- Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques
- Fonction Python print() : Guide pratique avec exemples
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
- Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples