Hoe krijg ik een substring van een string in Python?

Is er een manier om een string te substringen in Python, om een nieuwe string te krijgen vanaf het derde karakter tot het einde van de string?

Misschien zoals mijnString[2:einde]?

Als het verlaten van het tweede deel betekent 'tot het einde', en als je het eerste deel verlaat, begint het dan vanaf het begin?

Oplossing
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'

Python noemt dit concept "slicing" en het werkt op meer dan alleen strings. Kijk hier voor een uitgebreide introductie.

Commentaren (0)

Eén voorbeeld lijkt hier te ontbreken: volledige (ondiepe) kopie.

>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>

Dit is een veelgebruikte idioom voor het maken van een kopie van sequentietypes (niet van geïnterneerde strings), [:]. Shallow kopieert een lijst, zie Python list slice syntax used for no obvious reason.

Commentaren (5)

Je hebt het goed, behalve voor "end". Het'heet slice notatie. Je voorbeeld zou moeten luiden:

new_sub_string = myString[2:]

Als je de tweede parameter weglaat, is dat impliciet het einde van de string.

Commentaren (0)