Er der en måde at understrenge en streng i Python på, så man får en ny streng fra det tredje tegn til slutningen af strengen?
Måske som myString[2:end]
?
Hvis man forlader den anden del betyder 'indtil slutningen', og hvis man forlader den første del, starter den så fra starten?
>>> x = "Hello World!"
>>> x[2:]
'llo World!'
>>> x[:2]
'He'
>>> x[:-2]
'Hello Worl'
>>> x[-2:]
'd!'
>>> x[2:-2]
'llo Worl'
Python kalder dette koncept for "slicing" og det virker på mere end bare strenge. Tag et kig her for en omfattende introduktion.
Et eksempel synes at mangle her: fuld (overfladisk) kopi.
>>> x = "Hello World!"
>>> x
'Hello World!'
>>> x[:]
'Hello World!'
>>> x==x[:]
True
>>>
Dette er et almindeligt idiom til at skabe en kopi af sekvenstyper (ikke af internede strenge), [:]
. Shallow kopierer en liste, se Python list slice syntax brugt uden indlysende grund.
Du har det lige der bortset fra "end". Det kaldes skiveskrivning. Dit eksempel skal lyde som følger:
new_sub_string = myString[2:]
Hvis du udelader den anden parameter, er det implicit slutningen af strengen.