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.
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']

