O que é String Slicing e como funciona?
Em uma lição anterior, você aprendeu como cada caractere em uma string pode ser identificado pelo seu índice (começando do zero) e acessado usando a notação de colchetes:
my_str = "Hello world"
print(my_str[0]) # H
print(my_str[6]) # w
print(my_str[-1]) # d
Fatiamento de string permite extrair uma parte de uma string ou trabalhar apenas com uma parte específica dela. Aqui está a sintaxe básica:
string[start:stop]
Se você quiser extrair caracteres de um determinado índice para outro, basta separar os índices start e stop com dois pontos:
my_str = 'Hello world'
print(my_str[1:4]) # ell
Observe que o índice stop é não inclusivo, então [1:4] extraiu apenas os caracteres do índice 1 até, mas sem incluir, o caractere no índice 4.
Você também pode omitir os índices start e stop e o Python usará por padrão 0 ou o final da string, respectivamente. Por exemplo, veja o que acontece se você omitir o índice start:
my_str = 'Hello world'
print(my_str[:7]) # Hello w
Isso extrai tudo do índice 0 até (mas não incluindo) o caractere no índice 7. E aqui está o que acontece se você omitir o índice stop:
my_str = 'Hello world'
print(my_str[8:]) # rld
Isso extrai tudo a partir do caractere no índice 8 até o final da string.
Observe que fatiar uma string não modifica a string original:
my_str = 'Hello world'
print(my_str[8:]) # rld
print(my_str) # Hello world
Você também pode omitir os índices start e stop, o que irá extrair a string inteira:
my_str = 'Hello world'
print(my_str[:]) # Hello world
Além dos índices start e stop, há também um parâmetro opcional step, que é usado para especificar o incremento entre cada índice no slice.
Aqui está a sintaxe para isso:
string[start:stop:step]
No exemplo abaixo, o fatiamento começa no índice 0, para antes de 11 e extrai a cada segundo caractere:
my_str = 'Hello world'
print(my_str[0:11:2]) # Hlowrd
Um truque útil que você pode fazer com o parâmetro step é inverter uma string definindo step como -1 e deixando start e stop em branco:
my_str = 'Hello world'
print(my_str[::-1]) # dlrow olleHEste módulo não possui perguntas. Marque como concluído.