[: -1] en Python
Le découpage est une opération dans les langages de programmation que nous pouvons effectuer sur des séquences d’objets ou des tableaux d’objets ou de chaînes. Lors du découpage, nous découpons une structure de données à l’aide de fonctions et de notations plus simples pour obtenir une sous-chaîne ou une sous-séquence, ou un sous-tableau de la structure de données d’origine.
Trancher en Python
Python est un langage de programmation, ce qui signifie qu’il prend également en charge le slicing. En Python, il existe principalement deux manières d’effectuer le slicing. Le premier utilise la fonction slice()
, et le second utilise la syntaxe d’indexation.
Trancher en Python à l’aide du constructeur slice()
Le constructeur de tranche accepte trois arguments : start
, stop
et step
. Ce constructeur crée un objet de découpage pour diviser une chaîne ou n’importe quelle séquence d’objets.
start
: c’est l’index de départ à partir duquel le tranchage doit commencer. Sa valeur par défaut est0
.stop
: C’est l’index de fin où doit se terminer le tranchage. C’est un argument obligatoire.step
: c’est le nombre d’incréments qui doivent être pris lors de l’itération sur la séquence pour le processus de tranchage. Sa valeur par défaut est1
.
Pour mieux comprendre cet utilitaire, regardons quelques exemples. Notez qu’en Python, -1
représente le dernier index. Et, lors de l’indexation ou de l’itération, l’index stop
n’est pas pris en compte dans le résultat final. Les opérations sont effectuées sur tout ce qui précède.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slices = [
slice(5),
slice(0, -1),
slice(1, -1, 2),
slice(1, 4, 1),
slice(5, -1),
slice(3, -1, 3),
slice(0, 0),
slice(-1, 0, -1),
slice(-5, 5, -3),
]
for i in range(len(slices)):
print(s[slices[i]])
for i in range(len(slices)):
print(a[slices[i]])
Production :
ABCDE
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
Notez que lorsqu’une seule valeur est passée au constructeur slice()
, la valeur est affectée à l’index stop
. C’est pourquoi pour slice(5)
, nous avons obtenu la sortie sous la forme ABCDE
.
Découpage en Python à l’aide de la syntaxe d’indexation
En Python, au lieu d’utiliser le constructeur slice()
pour créer des objets de découpage, nous pouvons utiliser la syntaxe suivante pour effectuer le découpage.
sequence[start:stop:step]
Les arguments acceptés sont les mêmes que ceux de l’ancienne méthode ; ce qui change vraiment, c’est la façon de les écrire. Les valeurs par défaut pour start
, stop
et step
sont respectivement 0
, -1
et 1
. Notez que nous pouvons sauter l’argument pour utiliser la valeur par défaut, mais il est nécessaire d’écrire les colons
. Regardons quelques exemples de syntaxe d’indexation pour mieux la comprendre.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[5])
print(s[:-1])
print(s[0:-1])
print(s[1:-1:2])
print(s[1:4:1])
print(s[5:-1])
print(s[3:-1:3])
print(s[:0])
print(s[-1:0:-1])
print(s[-5:5:-3])
print(a[5])
print(a[:-1])
print(a[0:-1])
print(a[1:-1:2])
print(a[1:4:1])
print(a[5:-1])
print(a[3:-1:3])
print(a[:0])
print(a[-1:0:-1])
print(a[-5:5:-3])
Production :
F
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
6
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
Signification de [ : -1]
en Python
Comme on peut le voir, cette syntaxe appartient à la syntaxe d’indexation. [ : -1]
imprimera tous les éléments de la séquence sauf le dernier. Regardons quelques exemples pour comprendre ce concept.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[:-1])
print(a[:-1])
Production :
ABCDEFGHIJKLMNOPQRSTUVWXY
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Article connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python