Maison >développement back-end >Tutoriel Python >Programmation Python : d'excellentes façons d'éviter les boucles !

Programmation Python : d'excellentes façons d'éviter les boucles !

PHPz
PHPzavant
2023-04-26 15:10:081780parcourir

Nous savons que l'utilisation de boucles en Python est très lente, que devez-vous faire si vous êtes confronté à une situation similaire ?

不要在 Python 中使用循环,这些方法其实更棒!

Dans cet article, je partagerai avec vous des méthodes et des cas qui peuvent être utilisés pour remplacer les boucles Python :

  • Map
  • Filter
  • Reduce

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.

1. Map

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]

2. Filter

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]

3. Réduire

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. 不要在 Python 中使用循环,这些方法其实更棒!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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer