Vous pourriez penser que la Compréhension de liste est un concept avancé. Cependant, cela peut simplifier votre code avec seulement une seule ligne dans des situations délicates. Il est temps de comprendre comment cela fonctionne. Je vais l'expliquer à un niveau débutant avec des exemples.
Vous voyez souvent la notation l2 = [x 1 for x in l]. On dit que c'est la même chose que ceci :
l2 = [] for x in l: x = x 1 l2.append(x)
Pour les deux cas, si l'on commence par l = [10, 100, 1000], l2 sera :
[11, 101, 1001]
La première syntaxe est ce que nous appelons la compréhension de liste.
Vous préférerez peut-être la boucle for habituelle, mais à la fin de cet article, je vous promets que vous serez en confiance avec la compréhension de liste !
De plus, vérifions la définition officielle détaillée de la documentation https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
Les compréhensions de listes fournissent un moyen concis de créer des listes. Les applications courantes consistent à créer de nouvelles listes dans lesquelles chaque élément est le résultat de certaines opérations appliquées à chaque membre d'une autre séquence ou itérable, ou à créer une sous-séquence de ces éléments qui satisfont à une certaine condition.
Décomposons-le davantage. La compréhension de liste est simplement une façon différente d'écrire du code, plus court et plus facile pour créer une nouvelle liste. Le résultat de la compréhension de liste est une liste, c'est pourquoi nous l'attribuons à une liste.
Passons en revue la deuxième partie de la définition, qui présente des exemples courants. Cela doit être fait à l'aide d'exemples spécifiques.
1.
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] uppercase_fast_foods = [food.upper() for food in fast_foods]
Après cela, uppercase_fast_foods sera :
['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']
Nous utilisons la fonction upper() pour mettre chaque aliment de notre liste en majuscules. En conséquence, tous les éléments sont désormais en majuscules. C'est ainsi que nous « créons de nouvelles listes où chaque élément est le résultat de certaines opérations appliquées à chaque membre d'une autre séquence ou itérable ».
2.
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] foods_with_space = [food for food in fast_foods if " " in food]Après cela, foods_with_space sera :
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"] foods_with_space = [food for food in fast_foods if " " in food]La ligne de code ci-dessus récupère les éléments de la liste qui contiennent un caractère d'espacement. C'est ainsi que nous « créons de nouvelles listes où chaque élément est le résultat de certaines opérations appliquées à chaque membre d'une autre séquence ou itérable ».
Exemples de compréhension de liste
1. Modifier chaque élément de la liste
foods = ["Burger", "Frites", "Poulet Frit", "Hot Dog", "Pizza"]
foods_with_version = [food ' - 2024' pour la nourriture dans les aliments]
print(foods_with_version)
foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"] foods_with_version = [food ' - 2024' for food in foods] print(foods_with_version)
['Burger - 2024', 'Frites - 2024', 'Poulet Frit - 2024', 'Hot Dog - 2024', 'Pizza - 2024']
['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']
2. Créer une sous-liste à partir d'une liste basée sur une condition
foods = ["Burger", "Poulet Frit", "Hot Dog", "Frites", "Pizza"]
long_foods = [nourriture contre nourriture dans les aliments si len(nourriture) > 7]
imprimer (long_foods)
foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"] foods_with_version = [food ' - 2024' for food in foods] print(foods_with_version)
['Poulet Frit']`
['Fried Chicken']`
3. Utilisez la fonction range avec compréhension de liste pour créer une liste
x = [i pour i dans la plage (10, 20, 2)]
imprimer(x)
foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"] foods_with_version = [food ' - 2024' for food in foods] print(foods_with_version)
[10, 12, 14, 16, 18]
[10, 12, 14, 16, 18]
4. Appliquer la compréhension de liste à une chaîne
input_string = "bonjour tout le monde"
mark_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string]
print(marked_voyels)
foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"] foods_with_version = [food ' - 2024' for food in foods] print(foods_with_version)
['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']
['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']
Conclusion
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3