Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-09-28 08:10:02
original
708 Les gens l'ont consulté

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)
Copier après la connexion

Pour les deux cas, si on commence par l = [10, 100, 1000], l2 sera :

[11, 101, 1001]
Copier après la connexion

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]
Copier après la connexion

Après cela, uppercase_fast_foods sera :

['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']
Copier après la connexion

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]
Copier après la connexion

Après cela, foods_with_space sera :

['Fried Chicken', 'Hot Dog']
Copier après la connexion

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)
Copier après la connexion

Sortie :

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']
Copier après la connexion

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)
Copier après la connexion

Sortie :

['Fried Chicken']`
Copier après la connexion

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)
Copier après la connexion

Sortie :

[10, 12, 14, 16, 18]
Copier après la connexion

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)
Copier après la connexion

Sortie :

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal