Dans ce didacticiel, vous apprendrez à utiliser le Fonction Python map() pour appliquer une fonction sur tous les éléments d'un itérable.
Python prend en charge le programmation fonctionnelle paradigme qui vous permet de définir des tâches comme un calcul de fonctions par programmation. Vous pouvez traiter les fonctions Python comme des objets : une fonction peut prendre une autre fonction comme paramètre et renvoyer une autre fonction.
La map()
function prend une fonction comme argument et vous permet de l'appliquer à tous les éléments d'une séquence.
À la fin de ce didacticiel, vous serez en mesure d'utiliser Python map()
fonction — pour réécrire les boucles verbeuses et lister les compréhensions. Vous allez coder plusieurs exemples pour comprendre les différentes manières d'utiliser le map()
la fonction.
How to Apply a Function to Elements of a Python List

Commençons notre discussion par un exemple.👩🏫
Ici nums
est une liste de nombres.
nums = [2,4,3,7]
Considérons ensuite la fonction self_pow()
. La fonction self_pow()
prend un nombre comme argument et renvoie le nombre élevé à la puissance du nombre lui-même : n**n.
En Python, ** est l'opérateur d'exponentiation. a**b renvoie la valeur de a élevée à la puissance b, ab.
def self_pow(n):
return n**n
FAIRE: Pour créer une nouvelle liste
nums_pow
en appliquant la fonctionself_pow()
à chaque élément de la listenums
.
Utilisation de la boucle for
Pour ce faire, vous pouvez utiliser pour les boucles en Python:
- Pour chaque nombre dans le
nums
liste, appelez la fonctionself_pow()
avecnum
comme argument. - Ajouter le résultat de l'appel de fonction à la nouvelle liste
nums_pow
.
nums_pow = []
for num in nums:
nums_pow.append(self_pow(num))
print(nums_pow)
Dans la sortie, chaque nombre nums
est élevé à lui-même. Les éléments dans nums_pow
liste sont les suivantes : 224433,77.
Output
[4, 256, 27, 823543]
Utilisation de la compréhension de liste
Vous pouvez rendre cela concis en utilisant compréhension de la liste. À partir de la boucle for explicite ci-dessus, nous pouvons identifier l'expression de sortie et la liste à parcourir.

Nous pouvons alors modifier l'expression générique de compréhension de liste :
new_list = [<output expression> for item in iterable]
L'expression de compréhension de liste pour générer le nums_pow
la liste est la suivante :
nums_pow = [self_pow(num) for num in nums]
print(nums_pow)
La sortie est la même que celle de l'utilisation de boucles for, comme prévu.
Output
[4, 256, 27, 823543]
Au lieu de la compréhension de boucle et de liste, vous pouvez utiliser le Python map()
fonction avec une syntaxe concise qui permet d'appliquer la fonction à tous les éléments d'un itérable. Commençons par apprendre la syntaxe de la fonction map.
Python map() Function Syntax

La syntaxe générale pour utiliser le Python map()
la fonction est la suivante :
map(function, iterable_1,[iterable_2,...,iterable_n])
La map()
la fonction prend en compte au moins deux arguments, un fonction et le itérable.
Dans la syntaxe ci-dessus :
- fonction désigne une fonction Python ou en général, tout Python appelable. Cela inclut les fonctions définies par l'utilisateur et intégrées, les classes, les méthodes d'instance et de classe, etc.
- itérable est tout itérable Python valide, tel qu'une liste, un tuple et une chaîne.
- La fonction map() applique la fonction à chaque article dans le itérable
Que renvoie la fonction map() ?
Il renvoie un objet de carte. Vous pouvez ensuite convertir l'objet map en liste en utilisant la syntaxe : list(map(function,iterable)).
Selon le cas d'utilisation, vous pouvez le caster dans un Tuple Python.

Maintenant que vous avez appris la syntaxe du Python map()
fonction, commençons à coder des exemples.
Vous devriez avoir Python 3.x pour suivre ce tutoriel. Sinon, vous pouvez exécuter les extraits de code dans Éditeur Python en ligne Geekflare.
How to Use map() Function with User-Defined Functions

#1. Auparavant, nous avions appliqué la self_pow()
fonction à chaque nombre dans le nums
liste. Dans la syntaxe de map()
fonction, on peut passer dans la fonction self_pow
et la liste nums
comme arguments.
Notes: Vous ne devez spécifier que le nom de la fonction et non un appel de fonction. Utilisation self_pow
ne le comptant pas self_pow()
.
La map()
La fonction renvoie un objet de carte.
print(map(self_pow,nums))
<map object at 0x7f7d315c14d0>
Nous pouvons ensuite transformer l'objet map en une liste à l'aide de la fonction list(), comme indiqué ci-dessous.
nums_pow = list(map(self_pow,nums))
print(nums_pow)
Voici la sortie où chaque num
in nums
est mappé à numnum in nums_pow
liste.
Output
[4, 256, 27, 823543]
#2. Considérez la fonction suivante inch_to_cm()
qui convertit les pouces en centimètres. Pouce 1 = 2.54 cm.
def inch_to_cm(inch):
return inch*2.54
Pour convertir les valeurs en pouces dans inches
liste en centimètres, vous pouvez utiliser le map()
fonction comme indiqué dans la cellule de code ci-dessous.
inches = [5.54,3.4,1,25,8.2]
cms = list(map(inch_to_cm,inches))
print(cms)
La cms
La liste contient les valeurs en pouces exprimées en centimètres.
Output
[14.0716, 8.636, 2.54, 63.5, 20.828]
How to Use map() Function with Built-In Functions

Dans cette section, nous allons apprendre à utiliser map()
avec des fonctions intégrées en Python.
#1. La liste strings
est une liste de langages de programmation. Vous souhaitez créer une nouvelle liste strings_upper
qui contient les chaînes du langage de programmation en majuscules.
strings = ['JavaScript','Rust','Python','Go']
La méthode de chaîne intégrée
.upper()
agit sur une chaîne et renvoie une copie formatée en majuscule.
strings_upper = list(map(str.upper,strings))
print(strings_upper)
La liste strings_upper
inclut des chaînes dans la liste strings
formaté en majuscule.
Output
['JAVASCRIPT', 'RUST', 'PYTHON', 'GO']
#2. Le intégré len()
La fonction en Python prend une séquence comme argument et renvoie sa longueur. Pour trouver la longueur de chacune des chaînes dans le strings
liste, nous pouvons utiliser la map()
fonction et appliquez la fonction de longueur sur chaque chaîne, comme indiqué ci-dessous.
strings_len = list(map(len,strings))
print(strings_len)
Output
[10, 4, 6, 2]
#3. Vous pouvez utiliser le map()
fonctionner avec d'autres collections telles que les tuples.
L'exemple suivant contient un tuple contenant des informations sur le nombre de chambres, la zone et la ville dans laquelle se trouve une maison.
En Python, le type()
La fonction renvoie le type de données de tout objet Python. Pour obtenir le type de données de tous les éléments de ce tuple, vous pouvez utiliser le map()
fonction pour appeler le type
fonction sur chaque élément de tuple.
house = (2,758.5,'Bangalore')
house_elt_type = tuple(map(type,house))
print(house_elt_type)
Nous avons converti l'objet map en un tuple. Vous pouvez également lancer dans une liste ou toute autre collection.
Dans la sortie ci-dessous, nous voyons que les types de données de 2, 758.5 et Bangalore ont été déduits comme 'int', 'float' et 'str', respectivement.
Output
(<class 'int'>, <class 'float'>, <class 'str'>)
#4. En Python, vous pouvez importer des modules intégrés et utiliser les fonctions définies dans les modules.
Pour calculer la racine carrée de chaque nombre dans le nums
liste, vous pouvez utiliser la fonction racine carrée sqrt
du module de mathématiques.
import math
nums = [30,90,34,45,97]
nums_sqrt = list(map(math.sqrt,nums))
print(nums_sqrt)
Output
[5.477225575051661, 9.486832980505138, 5.830951894845301, 6.708203932499369, 9.848857801796104]
La sortie ci-dessus est difficile à analyser et à suivre. Vous voudrez peut-être arrondir chaque valeur de racine carrée pour dire, deux décimales.
Comment arrondir un nombre à virgule flottante en Python
Définissons une fonction round_2()
qui prend une valeur à virgule flottante et l'arrondit à deux décimales.
def round_2(num):
return round(num,2)
Maintenant, vous pouvez utiliser le map()
fonction avec le round_2
les nouveautés nums_sqrt
liste.
nums_sqrt_round = list(map(round_2,nums_sqrt))
print(nums_sqrt_round)
Output
[5.48, 9.49, 5.83, 6.71, 9.85]
Vous pouvez également utiliser imbriqué map()
fonctions, où la fonction de carte interne est utilisée pour calculer la carré racine list nums_sqrt
, et la fonction de carte externe effectue l'opération d'arrondi.
nums_sqrt_round = list(map(round_2,list(map(math.sqrt,nums))))
print(nums_sqrt_round)
Output
[5.48, 9.49, 5.83, 6.71, 9.85]
Les sorties sont identiques dans les deux approches ci-dessus. Cependant, vous devez vous assurer que le code est lisible et maintenable lors de l'imbrication des fonctions, comme indiqué ci-dessus.
How to Use map() Function with Lambda Functions

Dans les sections précédentes, vous avez appris à utiliser Python map()
fonction avec des fonctions intégrées et définies par l'utilisateur. Vous allez maintenant apprendre à utiliser la fonction map() avec les fonctions lambda, qui sont anonymes en Python.
Parfois, vous aurez une fonction dont le corps ne contient qu'une seule ligne de code, et vous devrez peut-être n'utiliser la fonction qu'une seule fois et ne pas la référencer ailleurs dans le programme. Vous pouvez définir des fonctions telles que fonction lambda en Python.
Notes: lambda args : expression est la syntaxe générale pour utiliser un Fonction Python lambda.
#1. Considérez la liste suivante strings
. Supposons que vous vouliez obtenir une liste strings_rev
– contenant une copie inversée de chacune des chaînes.
strings = ['JavaScript','Rust','Python','Go']
Nous pouvons inverser une chaîne Python à l'aide du découpage de chaîne.
Notes: Il s'agit d'une généralisation de l'expression de découpage de chaîne
str[start:stop:step]
.- Sans le
start
etstop
valeurs, la tranche commence au début de la chaîne et s'étend jusqu'à la fin de la chaîne.
– Valeurs négatives destep
donne des tranches à partir de la fin de la chaîne.
- Par conséquent,str[::-1]
renvoie une copie inversée de str.
Vous pouvez utiliser cette fonction lambda : lambda x:x[::-1]
À l'intérieur de la fonction de carte, comme indiqué ci-dessous.
strings_rev = list(map(lambda x:x[::-1],strings))
print(strings_rev)
Comme avec d'autres exemples, nous transformons l'objet map en une liste. Dans la sortie, nous voyons que chacune des chaînes de la liste des chaînes a été inversée.
Output
['tpircSavaJ', 'tsuR', 'nohtyP', 'oG']
#2. Dans la section précédente, nous avons calculé la racine carrée de chaque nombre dans la liste des nombres, puis arrondi chaque valeur de racine carrée à deux décimales.
Nous avons utilisé la fonction round_2()
pour faire ça. Réécrivons le round_2()
fonctionner comme une fonction lambda et l'utiliser avec le map()
fonction décrite ci-dessous.
nums_sqrt_round_l =list(map(lambda num:round(num,2),nums_sqrt))
print(nums_sqrt_round_l)
Comme on le voit ci-dessous, la sortie est identique à ce que nous avons obtenu en utilisant le round_2()
la fonction.
Output
[5.48, 9.49, 5.83, 6.71, 9.85]
How to Use map() Function with Multiple Iterables

Dans les exemples que nous avons vus, nous avons appliqué une fonction sur tous les éléments d'exactement un itérable.
Parfois, nous pouvons avoir des fonctions qui prennent deux arguments ou plus. Dans ce cas, chaque argument est stocké dans une liste ou toute collection similaire.
Nous pouvons également utiliser la fonction Python map() avec plusieurs listes.
#1. Considérez la fonction suivante area()
qui accepte le length
et breadth
comme entrées et renvoie la zone, length*breadth
.
def area(length,breadth):
return length*breadth
La longueur et la largeur des différents rectangles sont stockées dans deux listes distinctes, lengths
et breadths
, Respectivement.
lengths = [4,8,10,18]
breadths = [9,4,6,11]
Nous pouvons utiliser le map()
fonction pour appliquer la fonction de zone sur les listes ci-dessus en passant à la fois le lengths
et breadths
listes.
areas = list(map(area,lengths,breadths))
print(areas)
Étant donné que la zone de fonction accepte deux arguments, les valeurs de longueur et de largeur sont utilisées à partir des listes lengths
breadths
, Respectivement.
Output
[36, 32, 60, 198]
#2L’ module mathématique Python a la fonction log qui nous aide à calculer le logarithme d'un nombre dans n'importe quelle base.
Notes: journal(x, base) renvoie la valeur de journal x à la base spécifiée par la valeur base, enregistrer base x. Si la base n'est pas spécifiée, la valeur de base par défaut est e (log calcule le logarithme naturel).
Dans cet exemple:
- La liste
x
correspond aux valeurs dont vous souhaitez calculer le logarithme. - La
base
list contient toutes les valeurs de base à utiliser dans le calcul du logarithme.
x = [2,6,12,10]
base = [2,3,2,5]
Nous pouvons utiliser la fonction Python map() avec math.log
, les listes, x
et base
pour obtenir la nouvelle liste log_x
, comme suit.
log_x = list(map(math.log,x,base))
print(log_x)
Voici la sortie.
Output
[1.0, 1.6309297535714573, 3.5849625007211565, 1.4306765580733933]
Conclusion
Voici un résumé de ce que vous avez appris dans ce didacticiel :
- La fonction Python map() prend au moins deux arguments : une fonction et un itérable, avec la syntaxe map(fonction, itérable(s)).
- La fonction peut être n'importe quel appel Python valide.
- When the fonction prend en k arguments, utilisez les
map()
fonction avec la fonction et chacun des k arguments dans un itérable.
Ensuite, apprenez à travailler avec ensembles en Python. Apprenez également à utiliser les fonction de sommeil python.
-
Bala Priya est un développeur et rédacteur technique indien avec plus de trois ans d'expérience dans le domaine de la rédaction de contenu technique. Elle partage son apprentissage avec la communauté des développeurs en créant des didacticiels techniques, des guides pratiques, etc. lire la suite