Python >> Tutoriel Python >  >> Python

Liste inversée Python avec découpage - Un guide illustré

Résumé :La notation de tranche list[::-1] avec start par défaut et stop indices et taille de pas négatif -1 inverse un list donné .

Problème :Étant donné une liste d'éléments. Comment inverser l'ordre des éléments dans la liste.

Exemple :Supposons que vous ayez la liste suivante :

['Alice', 'Bob', 'Carl', 'Dora']

Votre but est d'inverser les éléments pour obtenir le résultat suivant :

['Dora', 'Carl', 'Bob', 'Alice']

Slicing avec des valeurs de démarrage et d'arrêt par défaut

Le découpage est un concept pour découper une sous-chaîne à partir d'une chaîne donnée.

Utiliser la notation de découpage s[start:stop:step] pour accéder à tous les step -ième élément à partir de l'index start (inclus) et se terminant par l'index stop (exclu).

Les trois arguments sont facultatifs, vous pouvez donc les ignorer pour utiliser les valeurs par défaut (start=0 , stop=len(lst) , step=1 ). Par exemple, l'expression s[2:4] à partir de la chaîne 'hello' taille la tranche 'll' et l'expression s[:3:2] taille la tranche 'hl' . Notez que le découpage fonctionne de la même manière pour les listes et les chaînes.

Vous pouvez utiliser une taille de pas négative (par exemple, -1) pour trancher de droite à gauche dans l'ordre inverse. Voici comment vous pouvez l'utiliser pour inverser une liste en Python :

# Reverse a List with Slicing
names = ['Alice', 'Bob', 'Carl', 'Dora']
names = names[::-1]
print(names)
# ['Dora', 'Carl', 'Bob', 'Alice']

Les maîtres Python savent trancher de l'intérieur. Vous souhaitez améliorer vos compétences en tranchage ? Découvrez mon livre "Coffee Break Python Slicing" qui fera de vous un pro du slice en un rien de temps !

Liste d'inversion des alternatives

Alternativement, vous pouvez également utiliser d'autres méthodes pour inverser une liste.

  • list.reverse() - Idéal si vous souhaitez inverser les éléments de la liste en place .
  • list[::-1] — Idéal si vous voulez écrire un code concis pour renvoyer une nouvelle liste avec des éléments inversés.
  • reversed(list) — Idéal si vous voulez itérer sur tous les éléments d'une liste dans l'ordre inverse sans changer la liste d'origine.

La méthode list.reverse() peut être 37 % plus rapide que reversed(list) car aucun nouvel objet ne doit être créé.

Essayez-le vous-même dans notre shell Python interactif :

Exercice :Exécutez le code. Toutes les méthodes aboutissent-elles à la même liste inversée ?