Existe-t-il un moyen de sous-chaîne d'une chaîne en Python, pour obtenir une nouvelle chaîne du 3ème caractère à la fin de la chaîne?
Peut-être comme myString[2:end]
?
Oui, cela fonctionne en fait , si vous attribuez, ou se lier , le nom, end
à singleton constante, None
:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
La notation de tranche a 3 arguments importants:
Leurs valeurs par défaut lorsqu'elles ne sont pas données sont None
- mais nous pouvons les transmettre explicitement:
>>> stop = step = None
>>> start = 2
>>> myString[start:stop:step]
'34567890'
Si quitter la deuxième partie signifie «jusqu'à la fin», si vous quittez la première partie, cela commence-t-il depuis le début?
Oui, par exemple:
>>> start = None
>>> stop = 2
>>> myString[start:stop:step]
'12'
Notez que nous incluons start dans la tranche, mais nous n'allons que jusqu'à, et non compris, stop.
Lorsque l'étape est None
, par défaut, la tranche utilise 1
pour l'étape. Si vous marchez avec un entier négatif, Python est assez intelligent pour aller de la fin au début.
>>> myString[::-1]
'0987654321'
J'explique la notation de tranche en détail dans ma réponse à la question Expliquer la notation de tranche.