Mapper, filtrer et réduire les fonctions en Python: tout ce que vous devez savoir

Découvrez ce que sont les fonctions map (), filter () et reduction () en Python. Sachez également comment les utiliser avec les fonctions lambda et définies par l'utilisateur et les unes avec les autres.

Python fournit de nombreuses fonctions intégrées qui sont prédéfinies et peuvent être utilisées par l'utilisateur final en les appelant simplement. Ces fonctions facilitent non seulement le travail des programmeurs, mais créent également un environnement de codage standard. Dans cet article, vous découvrirez trois fonctions aussi impressionnantes, à savoir map (), filter et reduction () dans .



Avant d’aller de l’avant, examinons le contenu:



Alors, commençons. :)

Que sont les fonctions map (), filter () et reduction () en Python?

Comme mentionné précédemment, map (), filter () et reduction () sont intégrés de Python. Ces fonctions permettent l'aspect programmation fonctionnelle de . En programmation fonctionnelle, les arguments passés sont les seuls facteurs qui déterminent la sortie. Ces fonctions peuvent prendre n'importe quelle autre fonction en tant que paramètre et peuvent également être fournies à d'autres fonctions en tant que paramètres. Examinons maintenant de plus près chacune de ces fonctions.



La fonction map ():

La fonction map () est un type d'ordre supérieur. Comme mentionné précédemment, cette fonction prend une autre fonction en tant que paramètre avec une séquence d'itérables et retourne une sortie après avoir appliqué la fonction à chaque itérable présent dans la séquence. Sa syntaxe est la suivante:

SYNTAXE:

map (fonction, itérables)



Ici, la fonction définit une expression qui est à son tour appliquée aux itérables. La fonction de carte peut prendre des fonctions définies par l'utilisateur ainsi que fonctions lambda comme paramètre.

Utilisation des fonctions définies par l'utilisateur et Lambda dans:

Fonctions définies par l'utilisateur dans map ():

La fonction map () peut prendre des fonctions définies par l'utilisateur comme paramètres. Les paramètres de ces fonctions sont exclusivement définis par l'utilisateur ou le programmeur. Par exemple:

EXEMPLE:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x est l'objet de la carte print (x) print (set (x))

PRODUCTION:

{16, 1, 4, 9}

Comme vous pouvez le voir, x est un objet cartographique. La sortie de la partie suivante affiche la fonction de carte prenant newfunc () comme paramètre, puis applique le a * a à tous les itérables. Par conséquent, les valeurs de tous les itérables sont multipliées par elles-mêmes et renvoyées.

comment utiliser le navigateur sqlite

REMARQUE: La sortie n'est pas dans l'ordre des valeurs des itérables car j'ai utilisé la fonction set (). Vous pouvez également utiliser les fonctions list () ou tuple () par exemple:

EXEMPLE:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x est l'objet de la carte print (x) print (list (x))

PRODUCTION:

[1, 4, 9, 16]

Vous pouvez également transmettre plus d'une liste de paramètres. Par exemple:

EXEMPLE:

def func (a, b): retourne a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

PRODUCTION:

(3, 6, 8)

Voyons maintenant comment vous pouvez utiliser fonctions lambda dans la fonction map ().

Fonctions Lambda dans map ():

Les fonctions Lambda sont des fonctions qui n'ont aucun nom. Ces fonctions sont souvent fournies en tant que paramètres à d'autres fonctions. Essayons maintenant d'incorporer des fonctions lambda dans la fonction map (). Prenons l'exemple suivant:

EXEMPLE:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (lambda x: x + 3, tup)) print (newtuple)

PRODUCTION:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

La sortie ci-dessus est le résultat de l'application de l'expression lambda (x + 3) à chaque élément présent dans le tuple.

La fonction filter ():

La fonction filter () est utilisée pour créer une liste de sortie composée de valeurs pour lesquelles la fonction renvoie true. La syntaxe de celui-ci est la suivante:

SYNTAXE:

filtre (fonction, itérables)

Tout comme map (), cette fonction peut être utilisée peut également prendre des fonctions définies par l'utilisateur ainsi que des fonctions lambda en tant que paramètre.

EXEMPLE:

def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

PRODUCTION:

[3. 4]

Comme vous pouvez le voir, y est l'objet de filtre et la liste est une liste de valeurs qui sont vraies pour la condition (x> = 3).

Utilisation de lambda dans filter ():


La fonction lambda utilisée comme paramètre définit en fait la condition à vérifier. Par exemple:

EXEMPLE:

y = filtre (lambda x: (x> = 3), (1,2,3,4)) print (list (y))

PRODUCTION: [3. 4]

Le code ci-dessus produit la même sortie que la fonction précédente.

La fonction reduction ():

La fonction reduction (), comme son nom le décrit, applique une fonction donnée aux itérables et renvoie une seule valeur.

réduire-carte réduire filtre-edureka

La syntaxe de cette fonction est la suivante:

SYNTAXE:

réduire (fonction, itérables)

La fonction définit ici quelle expression doit être appliquée aux itérables. Cette fonction doit être importée depuis les fonctools module . Par exemple:

EXEMPLE:

à partir de functools importer réduire réduire (lambda a, b: a + b, [23,21,45,98])

PRODUCTION: 187

Dans l'exemple ci-dessus, la fonction de réduction ajoute consécutivement chaque itérable présent dans la liste et renvoie une seule sortie.

Les fonctions map (), filter () et reduction () en Python peuvent être utilisées ensemble.

Utilisation simultanée des fonctions map (), filter () et reduction ():

Lorsque vous faites cela, les fonctions internes sont d'abord résolues, puis les fonctions externes opèrent sur la sortie des fonctions internes.

Essayons d'abord de passer la fonction filter () comme paramètre à la fonction map ().

Utilisation de filter () dans map ():

Le code donné ci-dessous vérifie d'abord que la condition (x> = 3) est vraie pour les itérables. Ensuite, la sortie est mappée à l'aide de la fonction map ().

EXEMPLE:

c = map (lambda x: x + x, filtre (lambda x: (x> = 3), (1,2,3,4))) print (list (c))

PRODUCTION: [6, 8]

Si vous filtrez les entiers supérieurs ou égaux à 3 du tuple donné, vous obtenez [3,4] comme résultat. Ensuite, si vous mappez ceci en utilisant la condition (x + x), vous obtiendrez [6,8], qui est la sortie.

Utilisation de map () dans filter ():


Lorsque vous utilisez la fonction map () dans la fonction filter (), les itérables sont d'abord exploités par la fonction map, puis la condition de filter () leur est appliquée.

EXEMPLE:

c = filtre (lambda x: (x> = 3), carte (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (liste (c) )

PRODUCTION: [4, 6, 8]

Utilisation de map () et filter () dans Reduce ():

La sortie des fonctions internes est réduite en fonction de la condition fournie à la fonction réduire ().

EXEMPLE:

d = réduire (lambda x, y: x + y, map (lambda x: x + x, filtre (lambda x: (x> = 3), (1,2,3,4)))) print (d)

PRODUCTION: 14

La sortie est un résultat de [6,8] qui est le résultat des fonctions internes map () et filter ().

Avec cela, nous sommes arrivés à la fin de cet article sur les fonctions map (), filter () et reduction en Python. J'espère que vous avez tout compris clairement. Assurez-vous de pratiquer autant que possible et inversez votre expérience.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Fonctions map (), filter () et reduction () en Python» et nous vous répondrons dans les plus brefs délais.

Pour obtenir des connaissances approfondies sur Python ainsi que sur ses différentes applications, vous pouvez vous inscrire en direct avec assistance 24/7 et accès à vie.