Python Fonction map() avec des exemples

⚡ Résumé intelligent

Python La fonction `map()` applique une fonction donnée à chaque élément d'un itérable tel qu'une liste, un tuple, un ensemble, un dictionnaire ou une chaîne de caractères. Elle renvoie un objet `map` paresseux que vous pouvez convertir avec `list()` ou parcourir à l'aide d'une boucle.

  • (I.e. syntaxe: La fonction map() prend une fonction et un ou plusieurs itérables, puis applique cette fonction à chaque élément.
  • (I.e. Valeur de retour: La fonction map() renvoie un objet map paresseux ; il faut donc l’encapsuler dans list(), tuple() ou set() pour afficher les résultats.
  • 🧩 Itérables : Les listes, les tuples, les ensembles, les dictionnaires et les chaînes de caractères fonctionnent tous comme entrées de la fonction map().
  • | Lambda : Associer la fonction map() à une fonction lambda permet d'éviter de définir une fonction nommée distincte pour les transformations simples.
  • Plusieurs itérables : Passer plusieurs itérables applique la fonction à chacun d'eux en parallèle, arrêtezping au plus court.
  • 🤖 Aide à l'IA : Les assistants IA tels que GitHub Copilot génèrent des appels map(), et les transformations de type map alimentent les pipelines de données dans l'apprentissage automatique.

Python Fonction map()

Syntaxe

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

Paramètres

Voici deux paramètres importants :

  • fonction: Une fonction obligatoire à fournir à map(), qui sera appliquée à tous les éléments disponibles dans l'itérateur.
  • itérateur : Un objet itérable obligatoire. Il peut s'agir d'une liste, d'un tuple, etc. Vous pouvez passer plusieurs objets itérables à la fonction map().

Valeur de retour

La fonction map() applique la fonction donnée à tous les éléments contenus dans l'itérateur et renvoie un objet map itérable, c'est-à-dire un tuple, une liste, etc.

Comment fonctionne la fonction map() ?

La fonction map() prend deux arguments : une fonction et un objet itérable. La fonction fournie à map() est une fonction classique qui parcourt toutes les valeurs présentes dans l’objet itérable.

Par exemple, supposons que vous ayez une liste de nombres et que vous souhaitiez trouver le carré de chacun des nombres.

Pour obtenir le résultat, nous avons besoin d'une fonction qui renvoie le carré du nombre donné. Cette fonction est la suivante :

def square(n):
	return n*n

Voici la liste des éléments pour lesquels nous voulons trouver le carré :

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

Utilisons maintenant la fonction intégrée map() pour obtenir le carré de chacun des éléments de my_list.

Le code final est le suivant :

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

Sortie :

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

Le résultat de la fonction map(), comme indiqué ci-dessus, est un objet carte affiché à l'écran sous la forme suivante : .

Vous devrez parcourir le résultat de `map()` à l'aide d'une boucle `for` ou de la méthode `list()` pour obtenir le résultat final. J'ai utilisé `list()` dans le code pour afficher les valeurs de la liste fournie.

Ainsi, grâce à la fonction map(), nous pouvons obtenir le carré de chaque nombre. La liste fournie à map() était [2,3,4,5,6,7,8,9], et en utilisant la fonction square(), le résultat obtenu est [4, 9, 16, 25, 36, 49, 64, 81].

La fonction `map()` applique la fonction `square()` à tous les éléments de la liste. Par exemple, elle prend la variable `my_list` et met à jour la liste en attribuant le carré à chaque nombre. Le résultat est stocké dans la variable `updated_list`.

Utiliser map() avec Python fonctions intégrées

Le Python La fonction map() est une fonction intégrée et peut également être utilisée avec d'autres fonctions intégrées disponibles dans PythonDans cet exemple, nous allons utiliser Python La fonction intégrée round() arrondit les valeurs données.

Exemple :

Ma liste est : `my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]`. J’ai besoin des valeurs arrondies pour chaque élément de la liste ; nous utiliserons donc la fonction `round()` avec `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))

Sortie :

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

La fonction round() est appliquée à tous les éléments de la liste et renvoie une liste dont toutes les valeurs sont arrondies, comme le montre le résultat.

Utiliser map() avec une chaîne comme itérateur

Nous pouvons également utiliser map() sur une chaîne. Dans Python, une chaîne de caractères se comporte comme un tableau, nous pouvons donc facilement l'utiliser dans map().

Dans cet exemple, la fonction `myMapFunc()` convertit la chaîne de caractères donnée en majuscules. Elle est ensuite passée en argument à la fonction `map()`, qui se chargera de convertir la chaîne en majuscules.

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

Sortie :

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

Utilisation de map() avec une liste de Numbers

Pour travailler avec une liste dans map(), nous prendrons une liste de nombres et multiplierons chaque nombre de la liste par 10.

La liste que nous allons utiliser est [2,3,4,5,6,7,8,9]. La fonction myMapFunc() multiplie chaque nombre donné par 10. Cette fonction est fournie à map() avec la liste.

Exemple :

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

Sortie :

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

Le résultat obtenu est que chaque nombre de la liste est multiplié par 10.

Utiliser map() avec Tuple

Un tuple est un objet dans Python Il s'agit d'un tuple dont les éléments sont séparés par des virgules et placés entre parenthèses. Dans cet exemple, nous prendrons un tuple contenant des chaînes de caractères. La fonction utilisée convertira ces valeurs en majuscules.

Exemple :

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

Sortie :

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

Le résultat obtenu est un tuple dont toutes les valeurs sont converties en majuscules.

Utiliser map() avec le dictionnaire

A dictionnaire dans Python Il est créé à l'aide d'accolades ({}). Puisqu'il s'agit d'un itérateur, vous pouvez l'utiliser dans la fonction map(). Voyons maintenant comment utiliser un dictionnaire comme itérateur dans map().

L'exemple suivant illustre le fonctionnement d'un itérateur de dictionnaire à l'intérieur de 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))

Sortie :

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

Utiliser map() avec Set

Un ensemble de Python `set()` est une collection non ordonnée d'éléments entre accolades (`{}`). Comme `set()` est également un itérateur, vous pouvez l'utiliser à l'intérieur de la fonction `map()`.

Voici un exemple fonctionnel d'utilisation d'un ensemble comme itérateur dans la fonction 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))

Sortie :

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

Utilisation de map() avec la fonction Lambda

In Python, les expressions lambda sont utilisées pour construire des fonctions anonymes. Vous devrez utiliser le mot-clé lambda tout comme vous utilisez def pour définir des fonctions normales.

Dans cet exemple, nous allons utiliser la fonction lambda à l'intérieur de `map()`. Cette fonction lambda multipliera chaque valeur de la liste par 10.

Exemple :

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

Sortie :

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

Utilisation de plusieurs itérateurs dans la fonction map()

Exemple 1 : Passage de deux itérateurs de liste à map()

Vous pouvez envoyer plusieurs itérateurs, c'est-à-dire une liste, un tuple, etc., simultanément à la fonction map().

Par exemple, si vous souhaitez additionner deux listes, vous pouvez utiliser la fonction map(). Nous allons utiliser deux listes : my_list1 et my_list2.

Dans l'exemple ci-dessous, le premier élément de my_list1 est ajouté au premier élément de my_list2. La fonction myMapFunc() prend en paramètres les éléments de my_list1 et my_list2 et renvoie la somme des deux.

Voici un exemple fonctionnel d'addition de deux listes données à l'aide de la fonction 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))

Sortie :

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

Exemple 2 : Passer un tuple et un itérateur de liste à map()

Nous allons utiliser une liste et un itérateur de tuple dans la fonction `map()`. La fonction passée à `map()`, `myMapFunc()`, récupérera les éléments de la liste et du tuple. Les éléments seront joints par un tiret bas (`_`). Un exemple fonctionnel est présenté ci-dessous :

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

Sortie :

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

FAQ

Les deux méthodes appliquent une opération à chaque élément. Une compréhension de liste est souvent plus lisible et renvoie directement une liste, tandis que `map()` renvoie un objet `map` paresseux et peut être plus rapide lors de la réutilisation d'une fonction nommée existante.

Non. La fonction `map()` ne modifie jamais l'itérable d'origine. Elle lit chaque élément, applique votre fonction et produit un nouvel objet `map` (chargé paresseuse), sans toucher à la liste, au tuple ou à la chaîne de caractères source.

In Python 3. La fonction `map()` est paresseuse : elle renvoie un objet `map` qui ne calcule les valeurs que lors de l'itération. Cela permet d'économiser de la mémoire pour les grands volumes de données. Utilisez `list()` ou une boucle pour obtenir les résultats.

La fonction `map()` transforme chaque élément, `filter()` ne conserve que les éléments qui réussissent un test, et `reduce()` (issue de `functools`) combine tous les éléments en une seule valeur. Ensemble, elles couvrent les opérations de transformation, de sélection et d'agrégation.

Lorsque les itérables ont des longueurs différentes, la fonction map() s'arrête au plus court. Les éléments supplémentaires des itérables plus longs sont ignorés ; aucune erreur n'est donc levée et le résultat correspond à l'itérable le plus court.

Non. Un objet map est un itérateur qui est épuisé après un seul passage. Une fois parcouru ou après avoir appelé la méthode list(), il est vide. Convertissez-le d'abord en liste si vous souhaitez le réutiliser.

En apprentissage automatique, la fonction `map()` applique des fonctions de prétraitement à des ensembles de données, comme la mise à l'échelle des nombres, la tokenisation du texte ou la transformation des caractéristiques avant l'entraînement. Elle offre une méthode simple et fonctionnelle pour exécuter la même opération sur de nombreux échantillons.

Oui. GitHub Copilot complète automatiquement les appels à map() avec la fonction et les itérables appropriés, et les outils d'IA agentiques peuvent refactoriser les boucles en expressions map(), puis exécuter vos tests pour confirmer que le comportement reste inchangé.

Résumez cet article avec :