Comment utiliser la fonction map() en Python
Apprenez à utiliser la fonction map() de Python. Maîtrisez l'application de fonctions aux itérables sans écrire de boucles et comparez la carte avec les compréhensions de liste.
Aperçu
Lors du traitement de collections de données, vous devrez souvent appliquer une transformation spécifique à chaque élément d'un itérable. Par exemple, convertir une liste de numéros de chaîne en entiers ou normaliser un tableau de chaînes de base de données en les convertissant en minuscules. Plutôt que d'écrire des boucles « for » verbeuses, Python fournit un outil intégré appelé « map() ».
La fonction `map(function, iterable)` accepte une fonction de transformation et un itérable comme arguments. Il applique la fonction à chaque élément de l'itérable et renvoie un objet itérateur (un objet `map`). Puisqu'il est renvoyé en tant qu'itérateur, les calculs sont exécutés paresseusement : les éléments ne sont traités que lorsque vous les parcourez, ce qui économise de la mémoire pour les grands ensembles de données.
Pour obtenir immédiatement une représentation de liste de l'objet cartographique, vous devez convertir le résultat à l'aide du constructeur `list()` : `list(map(func, data))`. Vous pouvez transmettre n'importe quelle fonction standard, fonction de bibliothèque standard (comme `str` ou `len`) ou fonctions anonymes personnalisées déclarées avec le mot-clé `lambda` directement à `map()` pour une exécution en ligne.
Sortie de code et d'exécution
Ce script montre la modification de collections à l'aide de la fonction map() avec des transformations de chaînes, le mappage d'éléments de liste en nombres et l'utilisation de rappels lambda.
# 1. Map string conversion over a list of numbers
numbers = [1, 2, 3, 4]
string_numbers = list(map(str, numbers))
print("Mapped to strings:", string_numbers)
# 2. Square numbers using a lambda function inside map()
squared = list(map(lambda x: x**2, numbers))
print("Squared numbers:", squared)
# 3. Apply custom logic function to items
def normalize_name(name):
return name.strip().capitalize()
names = [" alice", "BOB ", " charlie "]
clean_names = list(map(normalize_name, names))
print("Clean names list:", clean_names)Mapped to strings: ['1', '2', '3', '4']
Squared numbers: [1, 4, 9, 16]
Clean names list: ['Alice', 'Bob', 'Charlie']Mise en œuvre étape par étape
- Identifiez la fonction de transformation que vous souhaitez appliquer à chaque élément de la collection.
- Appelez map(function_name, iterable) pour créer un itérateur paresseux d'éléments transformés.
- Enveloppez l'appel map() dans list() si vous devez accéder immédiatement à tous les éléments sous forme de liste standard.
- Combinez map() avec les fonctions lambda pour des transformations en ligne rapides et ponctuelles.
Foire aux questions
Map() est-il meilleur que les compréhensions de listes ?
Les compréhensions de listes sont généralement considérées comme plus lisibles et pythoniques par la communauté. Cependant, map() peut être plus rapide lors de l'application d'une fonction intégrée existante (comme map(str, list)) car elle exécute des boucles de code C optimisées.
Map() peut-il prendre plusieurs itérables ?
Oui ! Si la fonction de transformation prend plusieurs arguments, vous pouvez transmettre plusieurs itérables à map(). Par exemple, map(lambda x, y: x + y, list1, list2) ajoutera des éléments par paires.
Sujets connexes
Apprenez à utiliser les fonctions lambda en Python. Maîtrisez les fonctions anonymes, les rappels en ligne et le tri des données de liste avec des clés lambda.
Comment utiliser la compréhension de liste en PythonApprenez à utiliser les compréhensions de listes en Python. Écrivez des boucles concises, appliquez des filtres conditionnels et créez des matrices avec une syntaxe visuelle claire.
Comment utiliser la fonction filter() en PythonDécouvrez comment utiliser la fonction filter() de Python pour extraire des éléments des collections. Comparez le filtre avec les compréhensions de liste et les rappels lambda.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Fonctions Python
Maîtrisez les fonctions Python. Apprenez à écrire du code réutilisable à l'aide de def, à définir des arguments, à renvoyer des valeurs et à comprendre la portée localement et globalement.
Aide-mémoire sur les fonctions du module mathématique Python
Guide de référence rapide pour la bibliothèque standard mathématique Python. Apprenez à utiliser les fonctions trigonométriques, logarithmiques, d'arrondi et arithmétiques.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.