map()

10 min 5 exercices Niveau 4

La Fonction map() en Python

map() est une fonction intégrée en Python qui permet d'appliquer une fonction à chaque élément d'un itérable (comme une liste) et de renvoyer un nouvel itérable avec les résultats.

Utilisation de Base

Syntaxe

map(function, iterable)

function : Une fonction qui sera appliquée à chaque élément de iterable. iterable : Un itérable dont les éléments seront traités par function.

Exemple

def carre(nombre):
    return nombre ** 2

nombres = [1, 2, 3, 4]
resultat = map(carre, nombres)

resultat est maintenant un objet map contenant [1, 4, 9, 16].

Caractéristiques de map()

Renvoie un Objet Map : map() ne retourne pas une liste, mais un objet map, qui est un itérable.

Efficacité : L'objet map ne stocke pas tous les résultats en mémoire; il les calcule à la volée, ce qui est plus efficace pour de grands itérables.

Utilisations Courantes

Transformation de Données : Idéal pour convertir ou manipuler des collections de données. Substitution de Boucles for : Peut souvent remplacer une boucle for pour une écriture plus concise et plus lisible. Utilisation avec des Fonctions Lambda : Souvent utilisé avec des fonctions lambda pour des opérations simples et anonymes.

resultat = map(lambda x: x**2, nombres)

Conversion en Liste ou Autres Types de Collections

Pour utiliser les résultats de map(), convertissez l'objet map en une liste ou une autre structure de données :

resultat_liste = list(resultat)

Combinaison avec d'Autres Itérables

map() peut accepter plusieurs itérables. La fonction donnée doit alors accepter autant d'arguments qu'il y a d'itérables.

a = [1, 2, 3]
b = [4, 5, 6]

resultat = map(lambda x, y: x + y, a, b)  # Résultat : [5, 7, 9]

Bonnes Pratiques

Fonctions Pures : Utilisez des fonctions sans effets secondaires pour de meilleurs résultats et une meilleure prévisibilité. Lisibilité : Choisissez map() lorsque cela rend le code plus lisible et plus clair que les boucles équivalentes. Performances : Préférez map() pour les transformations simples sur de grands ensembles de données.

logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus