Comment utiliser des boucles avec des listes en Python
Si vous avez utilisé des tableaux dans d'autres langages de programmation, vous pouvez trouver quelque chose de similaire sous la forme de listes en Python. La seule différence est que les listes Python ont un avantage supplémentaire: la taille dynamique. Comme les tableaux, vous pouvez les utiliser pour stocker plusieurs éléments.
Pourquoi le bouclage est-il nécessaire?
Lorsque vous travaillez avec des listes, vous devrez parfois effectuer la même opération sur chaque entrée de la liste.
Par exemple, vous souhaiterez peut-être prendre la moyenne de toutes les entrées d'une liste. Dans le même ordre d'idées, que se passe-t-il si vous avez stocké des blogs dans une liste et que vous souhaitez récupérer leur titre?
Tous ces scénarios ont le même problème: ils impliquent une répétition. Pour résoudre ces problèmes, vous pouvez simplement utiliser des boucles avec des listes en Python.
Voyons comment les boucles facilitent l'exécution d'opérations sur plusieurs éléments d'une liste avec un exemple.
Comprendre les boucles avec des listes à travers un exemple
Supposons que vous souhaitiez imprimer une liste des nageurs américains de l'année de 2016 à 2019 (personne n'a été récompensé en 2020 en raison du COVID-19). Sans boucles, vous devrez récupérer chaque nom un par un dans la liste. Cependant, cette méthode pose deux problèmes majeurs:
- L'impression de chaque nom est répétitive et prend du temps lorsque vous travaillez avec une longue liste.
- La modification du code pour chaque instance nécessite un effort considérable.
Heureusement, une boucle for peut résoudre ces deux problèmes de manière efficace. Considérez le code suivant:
swimmers = [ 'phelps' , 'dressel' , 'kalisz' , 'dressel' ]
for swimmer in swimmers:
print(swimmer)
Disséquons ce code en trois étapes:
- Vous définissez une liste de nageurs et y stockez les noms des gagnants.
- Vous définissez une boucle for, tirez un nom de la liste des nageurs un par un et attribuez-le à la variable nageur .
- Vous demandez à Python d'imprimer un nom attribué au nageur dans cette itération spécifique.
Maintenant, Python continue de répéter les 2 ème et 3 ème étapes pour imprimer tous les nageurs de votre liste. Pour votre commodité, vous pouvez le lire comme ceci: "Pour chaque nageur de ma liste de nageurs, affichez le nom du nageur." Voici le résultat:
Un bref aperçu des boucles
Le sujet de la boucle est crucial car il s'agit de l'une des principales approches pour automatiser les tâches répétitives. Par exemple, dans notre fichier swimmers.py , Python traite la première ligne de la boucle:
for swimmer in swimmers:
Ici, vous dites à Python de récupérer la première valeur de votre liste, nageurs. Ensuite, il l'assigne à votre nageur variable défini. Puisque la première valeur est 'phelps', l'instruction suivante s'applique à elle:
print (swimmer)
Il est important de comprendre que Python imprime la valeur la plus actuelle de nageur à ce stade , qui se trouve être des «phelps». Comme la liste se compose de plusieurs valeurs, Python revient à la première ligne de la boucle:
for swimmer in swimmers:
Cette fois, Python récupérera le nom suivant de votre liste, «dressel» et l'attribuera à la variable nageur. Encore une fois, Python exécutera le morceau de code suivant:
print (swimmer)
Maintenant, Python imprime la valeur la plus actuelle de nageur , qui se trouve être «dressel». De même, Python réitérera la boucle et affichera «kalisz» et «dressel».
Après avoir imprimé la dernière valeur, Python revient à la première ligne de la boucle, et comme il n'y a plus d'entrée, il passe à la ligne suivante. Dans ce programme, il n'y a rien après la boucle for, donc ça se termine.
Au fur et à mesure que vous continuez à parcourir les listes, gardez à l'esprit que quelle que soit l'étape que vous définissez dans votre code, elle sera réitérée une fois pour chaque entrée de liste, quelle que soit la longueur de la liste. Cela signifie que même si vous ajoutez un milliard d'entrées à votre liste, Python exécutera l'action définie un milliard de fois.
Une autre chose à noter est que lorsque vous définissez vos boucles for, vous pouvez choisir n'importe quel nom pour la variable temporaire affectée à chaque entrée de la liste. Mais, il est recommandé de choisir un nom qui correspond à votre contexte pour une meilleure lisibilité du code.
Par exemple, voici une approche efficace pour parcourir une liste de produits, d'oiseaux et d'acteurs:
for product in products:
for bird in birds:
for actor in actors:
Maintenant que vous avez une compréhension de base de la boucle for, vous manipulez chaque élément de votre liste. Pour en revenir à l'exemple du nageur, vous pouvez féliciter chaque nageur pour ses compétences en écrivant le code suivant:
swimmers = ['phelps', 'dressel', 'kalisz', 'dressel']
for swimmer in swimmers:
print(f"{swimmer.title()}, your swimming skills are terrific!")
Ce code fonctionne exactement comme le précédent; la seule différence est que vous créez un message pour chaque nageur en appelant leurs noms. Comme auparavant, la boucle exécute à nouveau chaque nageur et imprime une déclaration pour chacun d'eux. Comme prévu, la sortie générée est affichée ci-dessous:
Vous pouvez également écrire plusieurs instructions dans la boucle for. Gardez à l'esprit que la boucle englobe chaque ligne indentée qui vient après le nageur chez les nageurs, et Python exécute chaque ligne une fois pour chaque valeur de liste. Par conséquent, il existe des possibilités infinies pour toutes les entrées de la liste.
Par exemple, vous pouvez écrire une autre instruction d'impression dans l'exemple ci-dessus.
swimmers = ['phelps', 'dressel', 'kalisz', 'dressel']
for swimmer in swimmers:
print(f"{swimmer.title()}, your swimming skills are terrific!")
print(f"Looking forward to see your in the next competition, {swimmer.title()}.
")
Comme vous avez utilisé l'indentation pour les deux instructions, Python exécute chacune d'elles pour chaque entrée de la liste.
Après avoir terminé la boucle, vous pouvez résumer votre sortie, puis passer à d'autres parties de votre programme. Cette partie post-boucle ne doit pas être indentée, elle n'est donc pas répétée.
Vous pouvez désormais parcourir facilement les listes
Dans cet article, vous avez appris pourquoi des boucles sont nécessaires, comment utiliser des boucles avec des listes et comment Python traite les entrées d'une liste lorsqu'elle est indentée dans une boucle. Vous pouvez désormais utiliser des listes et des boucles pour écrire du code plus complexe et créer des programmes de meilleure qualité.
Pour tester vos connaissances, voici un exercice simple: créez une liste de 10 nombres et n'imprimez que les nombres divisibles par cinq.