Maison  >  Article  >  développement back-end  >  Une manière élégante et simple d'utiliser les listes Python : compréhensions de listes

Une manière élégante et simple d'utiliser les listes Python : compréhensions de listes

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-09-28 08:10:02581parcourir

An elegant and simple way to use Python Lists: List Comprehensions

Vous pourriez penser que la Compréhension de liste est un concept avancé. Cependant, il peut simplifier votre code avec une seule 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.

Qu’est-ce que la compréhension de liste exactement ?

On voit souvent la notation l2 = [x 1 pour x dans l]. On dit que c'est la même chose que ça :

l2 = []
for x in l:
    x = x + 1
l2.append(x)

Pour les deux cas, si 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 où 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 la 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 devrait ê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 :

['Fried Chicken', 'Hot Dog']

La ligne de code ci-dessus récupère les éléments de la liste qui contiennent un caractère espace. 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

J'ai utilisé la compréhension de liste dans de nombreux problèmes, car chaque fois que je rencontrais trop de boucles for, je pensais : "Pas de problème, je vais juste les simplifier". Il s’avère que c’est la même logique, juste plus propre ! ?
Sans plus tarder, voici quelques-uns des exemples les plus pertinents que j’ai trouvé :
1. Modifier chaque élément de la liste

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food + ' - 2024' for food in foods]
print(foods_with_version)

Sortie :

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']

Dans cet exemple, nous prenons une liste d'aliments et ajoutons « - 2024 » à chacun d'eux. Nous utilisons la compréhension de liste pour créer rapidement une nouvelle liste avec ces noms mis à jour.
2. Faire une sous-liste à partir d'une liste basée sur une condition

foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"]
long_foods = [food for food in foods if len(food) > 7]
print(long_foods)

Sortie :

['Fried Chicken']`

Dans cet exemple, nous créons une liste d'aliments et filtrons ceux qui comportent plus de 7 caractères. Nous utilisons la compréhension de liste avec une condition pour y parvenir.
3. Utilisez la fonction range avec compréhension de liste pour créer une liste

x = [i for i in range(10, 20, 2)]
print(x)

Sortie :

[10, 12, 14, 16, 18]

Dans cet exemple, nous créons une liste de nombres allant de 10 à 18 en utilisant la compréhension de liste avec range().
4. Appliquer la compréhension de liste à une chaîne

input_string = "hello world"
marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string]
print(marked_vowels)

Sortie :

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']

Dans ce dernier exemple, nous prenons une chaîne et marquons ses voyelles avec un astérisque (*). Nous utilisons la compréhension de liste pour créer une nouvelle liste basée sur la chaîne d'origine.

Conclusion

Tout au long de cet article, j'ai couvert toutes les informations de base sur la compréhension des listes, de la définition à divers exemples qui les expliquent plus en détail. J'espère que tout est clair et que vous vous sentez plus motivé pour intégrer désormais la compréhension de listes dans votre code Python !

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Détecteur de sourire et capture de photosArticle suivant:Aucun