CodeGym /Cours Java /Python SELF FR /Boucles par liste

Boucles par liste

Python SELF FR
Niveau 7 , Leçon 6
Disponible

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)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION