Introduction à List Comprehensions Python

Les compréhensions fournissent un moyen court et facile de construire de nouvelles séquences en utilisant des séquences déjà définies en Python. Ces séquences peuvent être des listes, des ensembles, des dictionnaires, etc. La compréhension de liste est l'une des fonctionnalités précieuses de Python. En résumé, List Comprehensions offre un moyen de créer de nouvelles listes basées sur des listes existantes. En d'autres termes, les compréhensions de liste sont un moyen simple de créer une liste basée sur certains itérables. Ici, un itérable est tout ce qui peut être utilisé pour boucler. Les listes de compréhension permettent d'utiliser une autre syntaxe pour créer des listes et tout autre type de données séquentielles en python. Nous verrons plus tard comment ces informations sont utiles. La compréhension de la liste comprend 3 composants, à savoir:

  • Expression de sortie: celle-ci est facultative et peut être ignorée.
  • Iterable.
  • Variable qui représente les membres de l'itérable, elle est souvent appelée variable itérateur.

Syntaxe et exemples:

En python, nous pouvons créer des listes de compréhension en utilisant la syntaxe suivante:

list_variable = (x for x in iterable)

Comme vous pouvez le voir dans la liste des compréhensions, une liste est affectée à une variable. Jetons un coup d'œil à un exemple, tout d'abord, nous pouvons considérer une méthode pour trouver le carré d'un nombre à l'aide d'une boucle:

Code:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Production:

Maintenant, considérons faire la même chose, mais en utilisant List Comprehensions au lieu d'une boucle:

Code:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Production:

Ici, vous pouvez voir que les crochets «()» sont utilisés pour indiquer que la sortie d'expression à l'intérieur d'eux est une liste.

Lister les compréhensions et les fonctions Lambda

Vous devez garder à l'esprit que les compréhensions de liste ne sont pas le seul moyen de créer des listes, Python a de nombreuses fonctions intégrées et fonction lambda qui peuvent être utilisées, telles que:

Code:

letters = list(map(lambda x: x, 'human'))
print(letters)

Production:

Bien que cela fonctionne dans de nombreux cas, les compréhensions de listes sont plus lisibles et plus faciles à comprendre par quelqu'un qui n'est pas le programmeur du code.

Ajout de conditions dans les compréhensions de liste

Vous êtes libre d'utiliser tout conditionnel nécessaire dans une compréhension de liste pour modifier la liste existante. Jetons un coup d'œil à un exemple qui utilise des conditions:

Code:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Production:

Voici un autre exemple:

Code:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Production:

Utilisation de boucles imbriquées dans des compréhensions de liste

Lorsque cela est nécessaire, nous pouvons utiliser des boucles imbriquées dans les listes de compréhension, voyons comment nous pouvons utiliser des boucles imbriquées de cette manière en trouvant la transposition d'une matrice:

Code:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Production:

Exemples de listes de compréhension Python

Ci-dessous les exemples de List Comprehensions Python:

Exemple # 1 - Suppression de voyelles d'une phrase donnée

Code:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Production:

Exemple # 2 - Cartographie des noms de pays avec leurs capitales

Code:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Production:

Avantages de List Comprehensions Python

On peut penser que si les boucles peuvent être utilisées pour faire presque tout ce que font les listes, pourquoi les utiliser en premier lieu? Eh bien, la réponse est dans la vitesse et le temps nécessaire pour effectuer la tâche et la quantité de mémoire nécessaire. Quand une compréhension de liste est faite, nous réduisons déjà 3 lignes de code en une et quand c'est fait, le code est beaucoup plus rapide que face à une compréhension de liste, python alloue d'abord la mémoire pour la liste, puis ajoute des éléments à l'intérieur. c'est aussi sans aucun doute une façon plus élégante et sophistiquée de créer des listes basées sur des listes préexistantes.

Conclusion

Maintenant que nous avons une certaine expérience des compréhensions de listes, il est facile de comprendre comment celles-ci nous permettent de transformer une liste en une nouvelle liste. Celles-ci ont une syntaxe simple qui limite la quantité de travail nécessaire pour créer une liste. Considérant que la syntaxe et la structure des compréhensions de liste sont fondamentalement comme une notation d'ensemble de construction, celles-ci deviennent rapidement une seconde nature pour les programmeurs et garantissent qu'une fois le code remis à une autre personne pour le maintenir et l'étendre, il sera facile à comprendre et travailler avec.

Article recommandé

Ceci est un guide pour List Comprehensions Python. Nous discutons ici des compréhensions de liste et des fonctions lambda ainsi que de l'implémentation et de la sortie du code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Destructeur en Python avec avantages
  2. Faire en boucle en Python avec organigramme
  3. Tableau de chaînes en Python avec méthodes
  4. Qu'est-ce que AWS Lambda Layers?
  5. Types de données PL / SQL
  6. Tableau de chaînes en JavaScript
  7. Différents types de données SQL avec des exemples
  8. Guide complet du tableau de chaînes