Existe-t-il un moyen de soustraire une chaîne en Python, pour obtenir une nouvelle chaîne à partir du troisième caractère jusqu'à la fin de la chaîne ?
Peut-être comme myString[2:end]
?
Si laisser la deuxième partie signifie 'jusqu'à la fin' ; et si vous laissez la première partie, est-ce que ça commence depuis le début ?
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'
Python appelle ce concept "slicing" et il ne fonctionne pas seulement sur les chaînes de caractères. Jetez un coup d'oeil [ici][1] pour une introduction complète.
[1] : https://stackoverflow.com/questions/509211/good-primer-for-python-slice-notation
Un exemple semble manquer ici : la copie intégrale (superficielle).
>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>
C'est un idiome commun pour créer une copie de types de séquences (pas de chaînes internées), [ :]
. La copie superficielle d'une liste, voir [Syntaxe de la tranche de liste Python utilisée sans raison évidente][1].
[1] : https://stackoverflow.com/questions/323689/python-list-slice-used-for-no-obvious-reason
Vous avez tout compris, sauf "fin". C'est ce qu'on appelle la notation en tranches. Votre exemple devrait se lire :
new_sub_string = myString[2:]
Si vous omettez le deuxième paramètre, il s'agit implicitement de la fin de la chaîne.