Gibt es eine Möglichkeit, eine Zeichenfolge in Python zu unterteilen, um eine neue Zeichenfolge ab dem dritten Zeichen bis zum Ende der Zeichenfolge zu erhalten?
Vielleicht wie myString[2:end]
?
Wenn man den zweiten Teil weglässt, bedeutet das 'bis zum Ende', und wenn man den ersten Teil weglässt, fängt es dann am Anfang an?
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'
Python nennt dieses Konzept "slicing" und es funktioniert nicht nur bei Zeichenketten. Werfen Sie einen Blick hier für eine umfassende Einführung.
Ein Beispiel scheint hier zu fehlen: die vollständige (oberflächliche) Kopie.
>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>
Dies ist ein gebräuchliches Idiom zum Erstellen einer Kopie von Sequenztypen (nicht von internierten Strings), [:]
. Shallow kopiert eine Liste, siehe Python list slice syntax used for no obvious reason.
Bis auf "end" haben Sie alles richtig verstanden. Das nennt man Slice-Notation. Ihr Beispiel sollte lauten:
new_sub_string = myString[2:]
Wenn Sie den zweiten Parameter weglassen, ist er implizit das Ende der Zeichenkette.