Problème :Étant donné une liste. Comment accéder au dernier élément de cette liste ?
Exemple :Vous avez la liste ['Alice', 'Bob', 'Liz']
et vous voulez obtenir le dernier élément 'Liz'
.
Solution rapide :Utiliser l'indexation négative -1.
friends = ['Alice', 'Bob', 'Liz'] print(friends[-1]) # Liz
Pour accéder au dernier élément d'une liste Python, utilisez la notation d'indexation list[-1]
avec indice négatif -1
qui pointe vers le dernier élément de la liste. Pour accéder aux avant-, troisième et avant-dernier éléments, utilisez les indices -2
, -3
, et -4
. Pour accéder au n
derniers éléments d'une liste, utilisez le découpage list[:-n-1:-1]
avec indice d'arrêt négatif -n
et taille de pas négative -1
.
Méthode 1 :Accéder au dernier élément avec l'indexation négative -1
Pour amener tout le monde sur la même page, permettez-moi d'expliquer rapidement les indices en Python par exemple. Supposons que vous ayez la liste ['u', 'n', 'i', 'v', 'e', 'r', 's', 'e']
. Les indices sont simplement les positions des caractères de cette chaîne.
Indice (positif) | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Élément | ‘u’ | ‘n’ | ‘je’ | ‘v’ | ‘e’ | ‘r’ | ‘s’ | ‘e’ |
Indice négatif | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
Indice positif :Le premier caractère a l'index 0
, le deuxième caractère a l'indice 1
, et le i
-ème caractère a l'index i-1
.
Indice négatif :Le dernier caractère a l'index -1
, l'avant-dernier caractère a l'index -2
, et le i
-ème dernier caractère a l'index -i
.
Maintenant, vous pouvez comprendre comment accéder au dernier élément de la liste :
friends = ['Alice', 'Bob', 'Liz'] print(friends[-1]) # Liz
Mais comment accéder à l'avant-dernier élément ? Utilisez simplement l'index -2 !
friends = ['Alice', 'Bob', 'Liz'] print(friends[-2]) # Bob
Méthode 2 :Accéder aux n derniers éléments avec découpage
Mais que se passe-t-il si vous souhaitez accéder au n
derniers éléments ? La réponse est trancher.
L'opération de découpage par défaut list[start:stop:step]
accède à tous les éléments entre start
(inclus) et stop
indices (exclus), en utilisant le step
donné taille sur la liste. Par exemple, l'opération de découpage friends[0:3:2]
commencerait par le premier élément 'Alice'
et terminez par le troisième élément 'Liz'
(inclus), mais en ne prenant qu'un élément sur deux en raison de la taille du pas de 2
—en sautant le deuxième élément 'Bob'
.
Vous pouvez utiliser le découpage avec start
négatif et stop
indices et avec une taille d'arrêt négative pour trancher de droite à gauche. Pour accéder au n
derniers éléments de la tranche, vous utiliserez donc le code suivant :
universe = ['u', 'n', 'i', 'v', 'e', 'r', 's', 'e'] # Access the n=4 last element from the list: n = 4 print(universe[:-n-1:-1]) # ['e', 's', 'r', 'e']
Il y a différents points à considérer dans le code :
- Vous utilisez une taille de pas négative -1, ce qui signifie que vous coupez de droite à gauche.
- Si vous ne fournissez pas de valeur pour
start
,stop
, oustep
indices, Python prend ceux par défaut. Par exemple, nous ne fournissons pas lestart
indexer et effectuer un découpage négatif pour que Python commence à partir du dernier élément'e'
. - Vous voulez obtenir le
n
derniers éléments. Len
-ème dernier élément a l'index-n
. Mais comme l'index d'arrêt n'est jamais inclus dans la tranche, nous devons trancher un pas plus loin vers la gauche - jusqu'à l'élément avec l'index-n-1
pour inclure l'élément d'index-n
.
Essayez-le vous-même dans notre shell de code interactif :
Exercice :Que se passe-t-il si la liste comporte moins de n caractères ?