Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 3 juillet 2023
Partager sur:
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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

Appliquer une fonction aux éléments d'une liste Python

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 fonction self_pow() à chaque élément de la liste nums.

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 fonction self_pow() avec num 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.

python-map-fonction-motivation

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

Syntaxe de la fonction Python map()

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.

Que renvoie la fonction map()

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

Utiliser la fonction map() avec des fonctions définies par l'utilisateur

#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

Utiliser la fonction map() avec les fonctions intégrées

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

Utiliser la fonction map() avec les fonctions Lambda

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 et stop valeurs, la tranche commence au début de la chaîne et s'étend jusqu'à la fin de la chaîne.
– Valeurs négatives de step 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

Utiliser la fonction map() avec plusieurs itérables

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 C
    Auteur
    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
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder