[: -1] en Python

Vaibhav Vaibhav 10 octobre 2023
  1. Trancher en Python
  2. Signification de [ : -1] en Python
[: -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 est 0.
  • 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 est 1.

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]
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python List