Come si ottiene una sottostringa di una stringa in Python?

C'è un modo per fare la sottostringa di una stringa in Python, per ottenere una nuova stringa dal terzo carattere alla fine della stringa?

Forse come myString[2:end]?

Se si lascia la seconda parte significa 'fino alla fine', e se si lascia la prima parte, inizia dall'inizio?

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

Python chiama questo concetto "slicing" e funziona su più che semplici stringhe. Date un'occhiata qui per un'introduzione completa.

Commentari (0)

Un esempio sembra mancare qui: la copia completa (superficiale).

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

Questo è un idioma comune per creare una copia di tipi di sequenza (non di stringhe internate), [:]. Shallow copia una lista, vedi sintassi delle liste Python usata per nessuna ragione ovvia.

Commentari (5)

Hai capito bene, tranne che per "fine". Si chiama notazione a fette. Il tuo esempio dovrebbe essere letto:

new_sub_string = myString[2:]

Se ometti il secondo parametro è implicitamente la fine della stringa.

Commentari (0)