Comment obtenir une sous-chaîne d'une chaîne en Python ?

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&#39 ; et si vous laissez la première partie, est-ce que ça commence depuis le début ?

Solution
>>> 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

Commentaires (0)

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

Commentaires (5)

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.

Commentaires (0)