Comment inverser une liste en Python

Rayven Esplanada 11 décembre 2023
  1. Utilisation de range() pour inverser une liste en Python
  2. Inverser une liste par la boucle while en Python
  3. Inverser une liste en utilisant l’opérateur de tranche en Python
  4. Utilisez reversed() pour inverser une liste en Python
Comment inverser une liste en Python

Ce tutoriel présente les différentes façons d’inverser une liste en Python.

L’inversion de liste est l’un des problèmes de programmation de démarrage les plus courants que vous rencontrez lorsque vous apprenez à programmer. En Python, il existe plusieurs façons simples d’inverser une liste.

Utilisation de range() pour inverser une liste en Python

range() est une fonction intégrée de Python qui produit une liste d’une plage de nombres.

Syntaxe de range()

range(start, stop, step)

Cette fonction a 3 arguments ; le principal argument requis est le deuxième argument stop, un nombre indiquant où vous voulez vous arrêter. Il y a 2 arguments optionnels, start indique où vous devez commencer à compter et step indique l’incrémentation de la séquence.

Notez que stop aura un décalage de 1 puisque le comptage commence à 0. Pour créer une liste qui s’arrête à 5 en utilisant range(), la valeur d’arrêt devrait être 6.

numbers = list(range(6))
print(numbers)

Production :

[0, 1, 2, 3, 4, 5]

Pour inverser cette liste, vous devez alors spécifier les arguments start et step.

Le start est fixé à 5, tandis que le step est fixé à 1, puisque nous voulons décrémenter l’intervalle de 1 à chaque fois. L’argument stop doit aussi être mis à 1, puisque nous voulons nous arrêter à 0 (puisque stop a un décalage de 1).

numbers = list(range(5, -1, -1))
print(numbers)

Production :

[5, 4, 3, 2, 1, 0]

Inverser une liste par la boucle while en Python

Déclarer une liste de 10 entiers aléatoires que nous voulons créer une nouvelle liste en ordre inverse.

numbers = [66, 78, 2, 45, 97, 17, 34, 105, 44, 52]

Utilisez une boucle de temps sur la liste pour la sortir en sens inverse. Tout d’abord, obtenez la taille de la liste et déduisez-la de 1 pour pointer vers le dernier élément de la liste. Déclarons également une liste vide pour stocker la nouvelle version inversée de la liste précédente.

idx = len(numbers) - 1
newList = []

Maintenant, utilisez la boucle while pour itérer et stocker chaque élément dans la nouvelle liste, chaque itération décrémentant idx jusqu’à ce qu’elle atteigne 0.

while idx >= 0:
    newList.append(numbers[idx])
    idx = idx - 1

print(newList)

Production :

[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]

Inverser une liste en utilisant l’opérateur de tranche en Python

Si vous préférez ne pas boucler la liste, alors utilisez l’opérateur slice pour décrémenter l’index du tableau de 1.

Comme range(), l’opérateur slice accepte trois arguments : start, stop, et step.

Laissez les deux premiers arguments vides pour qu’il couvre tout le tableau et fixez la valeur de step à -1 pour qu’il commence à la fin du tableau et le décrémente de 1 à chaque fois.

newList = numbers[::-1]
print(newList)

Production :

[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]

Utilisez reversed() pour inverser une liste en Python

Un autre moyen facile d’inverser une liste en Python est d’utiliser la fonction intégrée reversed(). Cette fonction accepte un argument de liste et retourne un itérateur de la version inversée de la même liste.

En utilisant le même exemple numbers ci-dessus, inverser la liste en utilisant cette fonction. N’oubliez pas d’envelopper la fonction avec list() pour stocker réellement la valeur de retour de reversed() dans une liste.

newList = list(reversed(numbers))
print(newList)

Alternativement, vous pouvez aussi utiliser une boucle for pour itérer sur la liste inversée et la stocker directement dans newList.

newList = [num for num in reversed(numbers)]
print(newList)

La sortie des deux solutions sera la même.

[52, 44, 105, 34, 17, 97, 45, 2, 78, 66]

En résumé, Python fournit un moyen simple d’inverser une liste en utilisant la fonction reversed(). Vous pouvez aussi inverser une liste manuellement en la bouclant dans une boucle for ou while. Python a aussi une méthode facile pour inverser une liste en une seule ligne si vous êtes à l’aise avec l’opérateur de tranche.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Article connexe - Python List