Existe uma maneira de substring uma string em Python, para obter uma nova string do terceiro caractere até o final da string?
Talvez como myString[2:end]
?
Sim, isso realmente funciona se você atribuir ou vincular o nome end
ao singleton constante None
:
>>> end = None
>>> myString = '1234567890'
>>> myString[2:end]
'34567890'
A notação de fatia possui 3 argumentos importantes:
Os padrões deles quando não fornecidos são None
- mas podemos ignorá-los explicitamente:
>>> stop = step = None
>>> start = 2
>>> myString[start:stop:step]
'34567890'
Se deixar a segunda parte significa 'até o fim', se você deixar a primeira parte, ela começa do começo?
Sim, por exemplo:
>>> start = None
>>> stop = 2
>>> myString[start:stop:step]
'12'
Observe que incluímos start na fatia, mas apenas subimos e não incluímos a parada.
Quando a etapa é None
, por padrão, a fatia usa 1
para a etapa. Se você pisar com um número inteiro negativo, o Python é inteligente o suficiente para ir do fim ao começo.
>>> myString[::-1]
'0987654321'
Explico detalhadamente a notação de fatia na minha resposta à pergunta Explain notation slice.