Python >> Tutoriel Python >  >> Python

Python une ligne pour boucle avec if

Ce didacticiel vous apprendra à écrire des boucles for d'une ligne en Python en utilisant la fonctionnalité experte populaire de list comprehension . Après avoir appris les bases de la compréhension des listes, vous apprendrez à restreindre les compréhensions des listes afin de pouvoir écrire des filtres personnalisés rapidement et efficacement.

Es-tu prêt? Retroussons vos manches et découvrons la compréhension de liste en Python !

List Comprehension Basics

La section suivante est basée sur mon article détaillé List Comprehension [Ultimate Guide] . Lisez la version courte ici ou la version longue sur le site Web, c'est vous qui décidez !

Ce graphique de présentation montre comment utiliser l'instruction de compréhension de liste pour créer des listes Python par programmation :

La compréhension de liste est une manière compacte de créer des listes. La formule simple est [expression + context] .

  • Expression : Que faire de chaque élément de la liste ?
  • Contexte : Quels éléments sélectionner ? Le contexte consiste en un nombre arbitraire de for et if déclarations.

L'exemple [x for x in range(3)] crée la liste [0, 1, 2] .

Jetez un œil à l'extrait de code interactif suivant :pouvez-vous comprendre ce qui est imprimé sur le shell ? Allez-y et cliquez sur "Exécuter" pour voir ce qui se passe dans le code :

Exercice :Exécutez l'extrait de code et comparez votre résultat supposé avec le résultat réel. Aviez-vous raison ?

Maintenant que vous connaissez les bases de la compréhension de liste (expression + contexte !), plongeons dans un exemple plus avancé où la compréhension de liste est utilisée pour le filtrage en ajoutant une clause if à la partie contexte.

Compréhension de la liste pour le filtrage (à l'aide de clauses If)

Vous pouvez également modifier l'instruction de compréhension de la liste en restreignant le contexte avec une autre instruction if :

Problème :Disons que nous voulons créer une liste de nombres au carré, mais vous ne considérez que les nombres pairs et ignorez les nombres impairs.

Exemple :La méthode multi-lignes serait la suivante.

squares = []

for i in range(10):
    if i%2==0:
        squares.append(i**2)
    
print(squares)
# [0, 4, 16, 36, 64]

Vous créez une liste vide squares et ajouter successivement un autre nombre carré commençant par 0**2 et se terminant par 8**2—mais en ne considérant que les nombres pairs 0, 2, 4, 6, 8. Ainsi, le résultat est la liste [0, 4, 16, 36, 64] .

Encore une fois, vous pouvez utiliser la compréhension de liste [i**2 for i in range(10) if i%2==0] avec une clause if restrictive (en gras) dans la partie contexte pour compresser cela en une seule ligne de code Python :

print([i**2 for i in range(10) if i%2==0])
# [0, 4, 16, 36, 64]

Cette ligne accomplit la même sortie avec beaucoup moins de bits.

Article connexe :Python une ligne pour la boucle

Livre Python One-Liners :maîtrisez d'abord la ligne unique !

Les programmeurs Python amélioreront leurs compétences en informatique avec ces lignes utiles.

Python One-Liners vous apprendra à lire et à écrire des « lignes simples » :des déclarations concises de fonctionnalités utiles regroupées dans une seule ligne de code. Vous apprendrez à décompresser et à comprendre systématiquement n'importe quelle ligne de code Python, et à écrire du Python éloquent et puissamment compressé comme un expert.

Les cinq chapitres du livre couvrent (1) les trucs et astuces, (2) les expressions régulières, (3) l'apprentissage automatique, (4) les principaux sujets de science des données et (5) les algorithmes utiles.

Des explications détaillées des one-liners introduisent les concepts clés de l'informatique etdéveloppez vos compétences en matière de codage et d'analyse . Vous découvrirez les fonctionnalités Python avancées telles que la compréhension de liste , tranchage , fonctions lambda , expressions régulières , carte et réduire fonctions et affectations de tranches .

Vous apprendrez également à :

  • Exploiter les structures de données pour résoudre des problèmes réels , comme utiliser l'indexation booléenne pour trouver des villes avec une pollution supérieure à la moyenne
  • Utiliser les bases de NumPy comme tableau , forme , axe , tapez , diffusion , indexation avancée , tranchage , tri , recherche , agrégation , et statistiques
  • Calculer des statistiques de base de tableaux de données multidimensionnels et les algorithmes K-Means pour l'apprentissage non supervisé
  • Créer davantage d'expressions régulières avancées en utilisant le regroupement et groupes nommés , anticipations négatives , caractères échappés , espaces blancs, jeux de caractères (et jeux de caractères négatifs ) et opérateurs gourmands/non gourmands
  • Comprendre un large éventail de sujets informatiques , y compris les anagrammes , palindromes , surensembles , permutations , factorielles , nombres premiers , Fibonacci chiffres, obscurcissement , recherche , et tri algorithmique

À la fin du livre, vous saurez comment écrire Python dans sa forme la plus raffinée , et créez de belles pièces concises d'"art Python" en une seule ligne.

Obtenez vos Python One-Liners sur Amazon !!