6.1 Boucle for
En Python, les boucles sur les éléments d'une liste sont souvent réalisées avec
la boucle for
. C'est l'une des approches les plus courantes pour itérer sur une liste,
permettant d'exécuter un bloc de code pour chaque élément de la liste.
Fondamentaux de la boucle for
La boucle for
en Python parcourt chaque élément d'une liste, en attribuant temporairement
la valeur de l'élément courant à une variable spécifiée après le mot-clé
for
. Exemple :
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Vous pouvez parcourir la liste dans l'ordre inverse à l'aide de tranches :
fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
print(fruit)
6.2 Boucle for
avec index
En plus de parcourir la liste avec une boucle for
classique, vous pouvez également
parcourir la liste avec une boucle for
en combinaison avec la fonction range()
. Cela
permet de travailler non seulement avec les éléments eux-mêmes, mais aussi avec leurs positions, ce qui
est parfois nécessaire pour effectuer des manipulations de données plus complexes.
Base de l'itération indexée
Pour itérer sur une liste avec un accès à l'index de chaque élément, vous pouvez utiliser l'approche suivante :
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
print(f'Index: {i}, Element: {my_list[i]}')
Avantages de l'utilisation des index
Utiliser des index dans les boucles permet non seulement d'accéder à chaque élément, mais aussi de modifier les éléments de la liste sur place. C'est particulièrement utile lorsque vous devez modifier une liste pendant l'itération.
Exemple :
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
my_list[i] = my_list[i] * 2
Exemples de manipulations complexes
Avec des index, il est facile de mettre en œuvre des algorithmes qui nécessitent un accès simultané à plusieurs éléments de la liste, par exemple, pour comparer l'élément actuel avec le précédent ou le suivant :
Exemple :
my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
if my_list[i] > my_list[i - 1]:
print(f'{my_list[i]} is greater than {my_list[i - 1]}')
6.3 Utilisation de la fonction enumerate()
En Python
la fonction enumerate()
fournit un moyen pratique
d'itérer sur les éléments d'une liste avec un accès simultané à leurs index.
C'est particulièrement utile lorsque vous devez traiter à la fois l'index et la valeur
d'un élément de la liste dans une boucle.
Fondamentaux de la fonction enumerate()
La fonction enumerate()
enveloppe la liste dans un objet spécial et
retourne un itérateur qui produit des tuples (paires de valeurs), constitués de
l'index et de la valeur de l'élément :
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
print(f'Index: {index}, Element: {element}')
Maintenant, vous avez non seulement l'élément, mais aussi son index.
Avantages de enumerate()
Utiliser enumerate()
rend le code plus lisible et
évite la nécessité de gérer manuellement les index avec
range(len(...))
. Cela simplifie la manipulation des éléments de la liste,
comme la modification, l'accès aux éléments et l'exécution de vérifications conditionnelles.
Exemples d'utilisation
enumerate()
est parfait pour les tâches où vous devez
à la fois modifier des éléments de la liste ou comparer des éléments avec leurs
index :
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
if index % 2 == 0:
print(f'Element {element} at even index {index}')
6.4 Boucle while
Nous avons parlé de for
, parlons maintenant de la boucle while
. Cette boucle peut également être utile lors de la manipulation des éléments de la liste.
Rappelons que la boucle while
commence par vérifier
la condition. Si la condition est vraie, le corps de la boucle s'exécute, puis la condition
est vérifiée à nouveau. Le processus se répète jusqu'à ce que la condition devienne
fausse.
Exemple d'itération sur une liste
Disons que vous avez une liste de nombres et que vous voulez itérer à travers elle jusqu'à rencontrer une certaine valeur :
numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
print(numbers[i])
i += 1
Pas très différent de la boucle for
, n'est-ce pas ? Mais il y a des cas où nous n'avons pas
besoin d'utiliser l'index pour travailler avec les éléments de la liste. Par exemple, la liste
contient des tâches que nous devons extraire une par une de la liste,
les exécuter et les supprimer de la liste.
Ce code pourrait être schématisé de cette manière :
tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
task = tasks.pop()
print(task)
GO TO FULL VERSION