Nous savons que l'utilisation de boucles en Python est très lente, que devez-vous faire si vous êtes confronté à une situation similaire ?
Dans cet article, je partagerai avec vous des méthodes et des cas qui peuvent être utilisés pour remplacer les boucles Python :
Avant de commencer à utiliser les fonctions ci-dessus, si vous êtes Je ne suis pas familier avec les fonctions lambda, jetons-y un coup d'œil rapide.
Les fonctions Lambda sont une alternative aux fonctions régulières. Il peut être défini en une seule ligne de code et prend donc moins de temps et de place dans notre code. Par exemple, dans le code ci-dessous, nous pouvons voir la fonction lambda en action.
def multiply_by_2(x): x*2
fonction lambda
lambda x: x*2
Remarque : il est préférable d'utiliser la fonction lambda au lieu de la fonction normale.
En utilisant la fonction map, nous pouvons appliquer la fonction à chaque valeur de l'objet itérable (liste, tuple, etc.).
map(function, iterable)
Supposons que nous voulions obtenir un nombre carré dans une liste (objet itérable). Nous allons d’abord créer une fonction square() pour trouver le carré d’un nombre.
def square(x): return x*x
Nous utiliserons ensuite la fonction map pour appliquer la fonction square() à la liste de nombres d'entrée.
input_list = [2, 3, 4, 5, 6] # Without lambda result = map(square, input_list) # Using lambda function result = map(lambda x: x*x, input_list) # converting the numbers into a list list(result) # Output: [4, 9, 16, 25, 36]
Intuitivement, la fonction de filtre est utilisée pour filtrer les valeurs des objets itérables (listes, tuples, ensembles, etc.). Les conditions de filtre sont définies dans la fonction transmise en paramètre à la fonction de filtre.
filter(function, iterable)
Nous utiliserons la fonction de filtre pour filtrer les valeurs inférieures à 10.
def less_than_10(x): if x < 10: return x
Nous utiliserons ensuite la fonction Filter pour appliquer la fonction less_than_10() à la liste de valeurs.
input_list = [2, 3, 4, 5, 10, 12, 14] # Without lambda list(filter(less_than_10, input_list)) # using lambda function list(filter(lambda x: x < 10, input_list)) # Output: [2, 3, 4, 5]
La fonction Réduire est un peu différente des fonctions de carte et de filtre. Il est appliqué de manière itérative à toutes les valeurs de l'itérable et ne renvoie qu'une seule valeur.
Dans l'exemple ci-dessous, la liste des nombres est réduite en appliquant la fonction d'addition. Le résultat final sera la somme de tous les nombres de la liste, soit 15. Créons une fonction addition() qui ajoute deux nombres d'entrée.
def addition(x,y): return x + y
Ensuite, afin d'obtenir la somme de tous les nombres de la liste, nous appliquerons cette fonction d'addition comme argument à la fonction de réduction.
from functools import reduce input_list = [1, 2, 3, 4, 5] # Without Lambda function reduce(addition, input_list)) # With Lambda function reduce(lambda x,y: x+y, input_list)) # Output: 15
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!