Maison > Article > développement back-end > Comprendre les compréhensions de listes en Python
Les compréhensions de listes sont une méthode puissante et efficace pour créer des listes en Python.
Ils offrent un moyen concis et lisible de générer des listes basées sur des itérables existants.
Dans l'article, j'explorerai les nuances de la compréhension de listes, leurs avantages par rapport aux boucles traditionnelles et diverses applications pratiques.
Les compréhensions de listes sont un moyen syntaxiquement compact de créer des listes en combinant le bouclage et la logique conditionnelle en une seule ligne de code.
Il en résulte une manière plus lisible et plus expressive de générer des listes, ce qui facilite la compréhension de l'intention du code en un coup d'œil.
La structure de base d'une compréhension de liste est la suivante :
[expression for item in iterable if condition]
Décomposons les composants de cette structure :
Compréhension de base de la liste :
numbers = [1, 2, 3, 4, 5] squares = [x**2 for x in numbers] print(squares) # Output: [1, 4, 9, 16, 25]
Cet exemple utilise la compréhension de liste pour créer une nouvelle liste de carrés à partir d'une liste de nombres existante.
Compréhension de liste avec une condition :
numbers = [1, 2, 3, 4, 5] even_squares = [x**2 for x in numbers if x % 2 == 0] print(even_squares) # Output: [4, 16]
Cet exemple filtre les nombres pour inclure uniquement les nombres pairs, qui sont ensuite mis au carré, démontrant l'utilisation d'une condition if dans la compréhension d'une liste.
Les compréhensions de listes offrent plusieurs avantages par rapport aux boucles traditionnelles :
Les compréhensions de listes peuvent être utilisées de différentes manières pour manipuler et traiter les données.
Voici quelques cas d'utilisation courants :
Listes de filtrage :
words = ["apple", "banana", "cherry", "date"] short_words = [word for word in words if len(word) <= 5] print(short_words) # Output: ['apple', 'date']
Cet exemple filtre une liste de mots pour inclure uniquement ceux comportant 5 caractères ou moins.
Transformer les listes :
temperatures_celsius = [0, 20, 30, 40] temperatures_fahrenheit = [(temp * 9/5) + 32 for temp in temperatures_celsius] print(temperatures_fahrenheit) # Output: [32.0, 68.0, 86.0, 104.0]
Cet exemple convertit une liste de températures de Celsius en Fahrenheit.
Compréhensions de listes imbriquées :
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] flattened = [num for row in matrix for num in row] print(flattened) # Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Cet exemple aplatit une liste 2D (matrice) en une liste 1D à l'aide de compréhensions de listes imbriquées.
Création de listes de tuples :
pairs = [(x, y) for x in range(3) for y in range(3)] print(pairs) # Output: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
Cet exemple génère une liste de toutes les paires (tuples) possibles de nombres à partir de deux plages.
Suppression des doublons :
list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_list = list(set([x for x in list_with_duplicates])) print(unique_list) # Output: [1, 2, 3, 4, 5]
Cet exemple supprime les doublons d'une liste en la convertissant en un ensemble, puis en une liste.
Explorons maintenant quelques sujets plus avancés concernant les variations de compréhension de liste.
Expressions génératrices
Les expressions génératrices sont similaires aux compréhensions de liste mais génèrent un itérable au lieu d'une liste.
Cela peut être plus efficace en termes de mémoire lorsque vous travaillez avec de grands ensembles de données, car les éléments sont générés à la volée plutôt que d'être stockés en mémoire d'un seul coup.
numbers = [1, 2, 3, 4, 5] squares_generator = (x**2 for x in numbers) for square in squares_generator: print(square) # Output # 1 # 4 # 9 # 16 # 25
Dictionnaire et compréhensions d'ensembles
Python prend également en charge les compréhensions de dictionnaires et d'ensembles, qui vous permettent de créer des dictionnaires et des ensembles de manière concise, similaire aux compréhensions de listes.
# Dictionary comprehension numbers = [1, 2, 3, 4, 5] squares_dict = {x: x**2 for x in numbers} print(squares_dict) # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25} # Set comprehension list_with_duplicates = [1, 2, 2, 3, 4, 4, 5] unique_set = {x for x in list_with_duplicates} print(unique_set) # Output: {1, 2, 3, 4, 5}
Les compréhensions de listes sont un outil puissant et polyvalent en Python qui vous permet de créer des listes de manière concise et lisible.
Ils peuvent simplifier votre code, améliorer les performances et faciliter la manipulation et le traitement des données.
En maîtrisant la compréhension des listes et leurs fonctionnalités avancées, vous pouvez écrire du code Python plus efficace et plus propre.
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!