09. Strings e Fatiamento#
Extraindo substrings com fatiamento#
A operação de fatiamento permite realizarmos um recorte da string. A sintaxe é semelhante ao acesso a um caractere usando o índice, mas ao invés de um número nós passamos um intervalo:

A semântica é semelhante ao range
: o fatiamento inclui o primeiro índice e não inclui o segundo. Assim, no exemplo acima, o fatiamento s[2:4]
inclui o índice 2
, mas não inclui o 4
. Portanto apenas os caracteres nos índices 2
e 3
estão presentes no resultado do fatiamento.
Exercise 1
Answer
Foi impresso 'iam'
. Lembrando que, assim como o range
, no fatiamento o segundo argumento não conta para o resultado final. Ou seja, a letra 'e'
que ocupa o índice 6
não aparece no string retornada pelo comando palavra[3:6]
.
Alternativamente, podemos omitir um (ou ambos) dos índices:

Exercise 2
Answer
Foi impresso 'Fatia'
. Quando o índice inicial começa em 0
, podemos omitir o valor. Desta forma, palavra[0:5]
é igual ao código palavra[:5]
Exercise 3
Answer
Foi impresso 'mento'
. Quando o fatiamento vai até o final da string, podemos omitir o segundo índice.
Desta forma, palavra[5:10]
é igual ao código palavra[5:]
Exercise 4
Assim como no range, podemos passar um terceiro argumento opcional para um fatiamento. Esse terceiro argumento indica o tamanho do pulo, ou seja, de quanto em quanto o índice deve ser aumentado (por padrão ele aumenta de 1 em 1). Por exemplo, 'abcdefghij'[0:10:2]
vai retornar uma nova string do índice 0 ao 9 pulando de 2 em 2, ou seja, a string 'acegi'
.
Exercise 5
Answer
Foi impresso 'aimn'
.
O código palavra[1:9:2]
faz o fatiamento da string, começando no índice 1
, terminando no índice 8
, pulando os índices de 2
em 2
.
Além do fatiamento, pode ser útil usarmos índices negativos. Os índices negativos tem um efeito semelhante aos índices positivos, mas vão do final para o começo. Por exemplo, o índice -1
é o último elemento, o índice -2
é o penúltimo elemento, o índice -3
é o antepenúltimo elemento, e assim por diante.

No exemplo acima apresentamos uma técnica bastante utilizada para inverter uma string, que é o uso do fatiamento [::-1]
. Ele pode ser útil em alguns exercícios do servidor.
Exercise 6
Answer
Foi impresso 'luzAzuL'
.
O código palavra[::-1]
é igual ao código palavra[-1:-8:-1]
.
Desta forma, o fatiamento da string, começando no índice -1
, terminando no índice -7
, percorrendo a string de -1
em -1
.
Fatiamento em listas#
Dissemos no começo do handout que existem muitas semelhanças entre listas e strings em Python. Uma delas é que também é possível realizar fatiamentos de listas, da mesma maneira como fizemos com strings.
Exercise 7
Answer
O código numeros[::2]
retorna a lista [0, 2, 4, 6, 8, 10]
.
No código numeros[::2]
, os dois primeiros valores foram omitidos, mas podemos reescrever o código da seguinte forma: numeros[0:11:2]
.
Exercise 8
EXERCÍCIOS#
Exercise 9
Exercise 10
Exercise 11
Exercise 12
EXERCÍCIOS ADICIONAIS#
Exercise 13