Python >> Tutoriel Python >  >> Python

7 façons de parcourir une liste en Python

Les listes sont l'un des six types de données fondamentaux du langage de programmation Python. Pour travailler efficacement avec Python, vous devez connaître les fonctions et les méthodes qui fonctionnent avec les listes. Et c'est ce que nous allons vous expliquer dans cet article.

En Python, les listes peuvent être utilisées pour stocker plusieurs éléments dans une seule variable. De plus, une seule liste d'itérations Python peut héberger des éléments de plusieurs types de données. Les listes (comme les tableaux dans d'autres langages de programmation) peuvent également être imbriquées, c'est-à-dire que les listes peuvent contenir d'autres listes.

Python fournit plusieurs façons d'itérer sur des listes ; chacun a ses avantages et ses inconvénients. Dans cet article, nous verrons comment les listes Python sont itérées et présenterons un exemple pour chaque méthode. Si tout cela semble nouveau, nous vous recommandons d'essayer notre piste Apprendre à programmer avec Python pour prendre une longueur d'avance dans la programmation Python. Cette piste vous aidera à comprendre les principes fondamentaux de la programmation, y compris les listes et l'itération.

Sans plus tarder, plongeons dedans !

7 façons de parcourir une liste en Python

1. Un pour simple Boucle

Utiliser un Python for loop est l'une des méthodes les plus simples pour parcourir une liste ou toute autre séquence (par exemple, des tuples, des ensembles ou des dictionnaires).

Python pour Les boucles sont un outil puissant, il est donc important que les programmeurs comprennent leur polyvalence. Nous pouvons les utiliser pour exécuter les instructions contenues dans la boucle une fois pour chaque élément d'une liste. Par exemple :

fruits = ["Apple", "Mango", "Banana", "Peach"]
for fruit in fruits:
  print(fruit)

L'exécution de la fonction donne le résultat suivant :

Apple
Mango
Banana
Peach

Ici, le for loop a imprimé chacun des éléments de la liste. En d'autres termes, la boucle a appelé le print() fonction quatre fois, en imprimant à chaque fois l'élément actuel de la liste, c'est-à-dire le nom d'un fruit.

2. Compréhension de la liste

La compréhension de liste est similaire à la boucle for; cependant, cela nous permet de créer une liste et de la parcourir en une seule ligne. En raison de sa simplicité absolue, cette méthode est considérée comme l'un des moyens les plus robustes d'itérer sur des listes Python. Consultez cet article sur les listes et la compréhension des listes en Python pour plus de détails. Pour l'instant, regardons un exemple :

fruits = ["Apple", "Mango", "Banana", "Peach"]
[print(fruit + " juice") for fruit in fruits]

Vous remarquerez que nous utilisons ce qui ressemble à une autre boucle for :for fruit in fruits . La clé ici est que la commande et le for..in structure sont entourés du print() commande entre crochets ; c'est ce qui en fait une compréhension de liste.

Voici le résultat :

Apple juice
Mango juice
Banana juice
Peach juice

Comme vous pouvez le voir, nous avons créé les fruits liste comme nous l'avons fait dans l'exemple précédent. Cependant, cette fois, nous avons utilisé la compréhension de liste pour faire deux choses :ajouter le mot "jus" à la fin de l'élément de liste et l'imprimer.

3. Un pour Boucle avec range()

Une autre méthode pour parcourir une liste Python est le range() fonction avec un for boucle. range() génère une séquence d'entiers à partir des index de départ et d'arrêt fournis. (Un index fait référence à la position des éléments dans une liste. Le premier élément a un index de 0, le deuxième élément de liste est 1, etc.) La syntaxe de la fonction de plage est la suivante :

range(start, stop, step)

Le début et l'étape les arguments sont facultatifs ; seulement l'arrêt argumentaire est nécessaire. L'étape détermine si vous ignorez les éléments de la liste ; il est défini sur 1 par défaut, ce qui signifie qu'aucun élément n'est ignoré. Si vous ne spécifiez qu'un seul paramètre (c'est-à-dire le arrêt index), la fonction construit un objet range contenant tous les éléments de 0 à stop-1 .

Voici un exemple qui imprimera le nom du fruit et son index dans la liste :

fruits = ["Apple", "Mango", "Banana", "Peach"]

# Constructs range object containing elements from 0 to 3
for i in range(len(fruits)):
  print("The list at index", i, "contains a", fruits[i])

Cela se traduit par la sortie suivante :

The list at index 0 contains a Apple
The list at index 1 contains a Mango 
The list at index 2 contains a Banana
The list at index 3 contains a Peach

Une approche légèrement différente consisterait à n'imprimer que certains des fruits en fonction de leur index. Nous ferions cela en spécifiant l'index de début et de fin pour la boucle for en utilisant le range() fonction :

fruits = ["Apple", "Mango", "Banana", "Peach"]

# Constructs range object containing only 1 and 2
for i in range(1, 3):
  print(fruits[i])

Voici le résultat :

Mango 
Banana

Comme nous l'avons demandé, il n'a renvoyé que les fruits aux index 1 et 2 ; rappelez-vous, 3 est le point d'arrêt et 0 est le premier index en Python.

4. Un pour Boucle avec enumerate()

Parfois, vous voulez connaître l'index de l'élément auquel vous accédez dans la liste. Le enumerate() fonction vous aidera ici; il ajoute un compteur et le renvoie sous la forme d'un "objet d'énumération". Cet objet contient des éléments qui peuvent être décompressés à l'aide d'une simple boucle for Python. Ainsi, un objet d'énumération réduit la surcharge liée à la tenue d'un décompte du nombre d'éléments dans une simple itération.

Voici un exemple :

fruits = ["Apple", "Mango", "Banana", "Peach"]

for index, element in enumerate(fruits):
  print(index, ":", element)

L'exécution du code ci-dessus renvoie cette liste des éléments et de leurs index :

0 : Apple
1 : Mango
2 : Banana
3 : Peach

5. Un pour Boucle avec lambda

lambda de Python function est une fonction anonyme dans laquelle une expression mathématique est évaluée puis renvoyée. En conséquence, lambda peut être utilisé comme objet de fonction. Voyons comment utiliser lambda pendant que nous parcourons une liste.

Nous ferons un for boucle pour parcourir une liste de nombres, trouver le carré de chaque nombre et l'enregistrer ou l'ajouter à la liste. Enfin, nous allons imprimer une liste de carrés. Voici le code :

lst1 = [1, 2, 3, 4, 5]
lst2 = []
 
# Lambda function to square number
temp = lambda i:i**2

for i in lst1:

    # Add to lst2
    lst2.append(temp(i))
  
print(lst2)

Nous utilisons lambda pour parcourir la liste et trouver le carré de chaque valeur. Pour parcourir lst1 , un for boucle est utilisée. Chaque entier est passé en une seule itération ; le append() la fonction l'enregistre dans lst2 .

Nous pouvons rendre ce code encore plus efficace en utilisant le map() fonction :

lst1 = [1, 2, 3, 4, 5]
  
lst1 = list(map(lambda v: v ** 2, lst1))
  
print(lst1)

Après avoir appliqué la fonction fournie à chaque élément d'un itérable spécifié, map() produit un objet cartographique (qui est un itérateur) des résultats.

Ces deux codes donnent exactement le même résultat :

[1, 4, 9, 16, 25]

6. Un temps Boucle

Nous pouvons également parcourir une liste Python en utilisant un while boucle. C'est l'une des premières boucles que les programmeurs débutants rencontrent. C'est aussi l'un des plus faciles à appréhender. Si vous considérez le nom de la boucle, vous verrez bientôt que le terme "while" a à voir avec un intervalle ou une période de temps. Le terme "boucle" fait référence à un morceau de code qui est exécuté à plusieurs reprises. Donc, un while la boucle s'exécute jusqu'à ce qu'une certaine condition soit remplie.

Dans le code ci-dessous, cette condition est la longueur de la liste ; le i compteur est mis à zéro, puis il ajoute 1 à chaque fois que la boucle imprime un élément de la liste. Quand i devient supérieur au nombre d'éléments de la liste, le while boucle se termine. Découvrez le code :

fruits = ["Apple", "Mango",  "Banana", "Peach"]

i = 0
while i < len(fruits):
  print(fruits[i])
  i = i + 1

Pouvez-vous deviner ce que sera le résultat ?

Apple
Mango
Banana
Peach

Il est important de noter le i = i + 1 dans le code ci-dessus peut également être abrégé en i += 1 .

Notre code garantit que la condition i < len(fruits) sera satisfait après un certain nombre d'itérations. Fin while boucles correctement est critique; vous pouvez en savoir plus sur la façon de terminer les boucles en Python ici.

7. Le NumPy Bibliothèque

Les méthodes dont nous avons discuté jusqu'à présent utilisaient de petites listes. Cependant, l'efficacité est essentielle lorsque vous travaillez avec de grandes quantités de données. Supposons que vous ayez de grandes listes unidimensionnelles avec un seul type de données. Dans ce cas, une bibliothèque externe comme NumPy est le meilleur moyen de parcourir de grandes listes.

NumPy réduit la surcharge en rendant l'itération plus efficace. Cela se fait en convertissant les listes en tableaux NumPy. Comme pour les listes, la boucle for peut également être utilisée pour parcourir ces tableaux.

Il est important de noter que la méthode que nous présentons ici ne peut être utilisée que pour des tableaux de types de données uniques.

import numpy as np

nums = np.array([1, 2, 3, 4, 5])

for num in nums:
  print(num)

L'exécution du code ci-dessus donne le résultat suivant :

1
2
3
4
5

Bien que nous ayons utilisé for num in nums  :pour sa simplicité dans cet exemple, il est généralement préférable d'utiliser for num in np.nditer(nums): lorsque vous travaillez avec de grandes listes. Le np.nditer La fonction renvoie un itérateur qui peut parcourir le tableau NumPy, ce qui est plus efficace en termes de calcul que l'utilisation d'une simple boucle for.

Il est temps de pratiquer les listes et les boucles en Python !

Les boucles Python sont utiles car elles vous permettent de répéter un morceau de code. Vous vous retrouverez fréquemment dans des circonstances où vous devrez effectuer les mêmes opérations encore et encore; les boucles vous aident à le faire efficacement.

Vous connaissez maintenant de nombreuses façons d'utiliser Python pour parcourir une liste. Si vous souhaitez mettre en pratique ce que vous avez appris (et consolider votre compréhension de Python), consultez notre Python Practice Set. Les exercices sont simples et intuitifs. De plus, il n'y a pas beaucoup de questions délicates et vous pourrez toujours compter sur de l'aide et des conseils. Alors visitez ce cours maintenant et lancez-vous dans votre voyage pour devenir un Pythonista.