Fatiamento (slicing) de Strings em Python

Antes de falarmos de slicing, vamos ver rapidamente o que são as strings em Python. Strings em Python são objetos como outros quaisquer. Podem ser construídos com uma atribuição simples:

>>> s = "hello, world!"

Tendo feito isso, o objeto s possui disponíveis vários métodos:

>>> print s.upper()
HELLO, WORLD!
>>> print s.split(",")
['hello', ' world!']
>>> print s.split(",")[0]
'hello'
>>> print s.replace("world", "dude")
hello, dude!

Acima, são mostrados apenas alguns dos métodos disponíveis para as strings, nativamente em Python. Assim como em outras linguagens, elementos individuais de uma string podem ser acessados via índice:

>>> print s[0]
h
>>> print s[2]
l
>>> print s[12]
!

Para acessar o último elemento de uma string, podemos proceder de duas formas:

>>> print s[len(s)]
!
>>> print s[-1]
!

Uma operação muito interessante que Python fornece para manipulação de strings é o fatiamento (slicing). Fatiamento significa extrair apenas uma parte da string, ou seja, uma substring. Com essa operação, podemos delimitar os limites inferior e superior do pedaço da string que queremos acessar. Por exemplo, se quisermos acessar a substring da posição 0 até a posição 4 na string s original, podemos fazer o seguinte:

>>> print s[0:5]
'hello'
>>> print s[:5]
'hello'
>>> print s[2:4]
ll
>>> print s[7:13]
'world!'
>>> print s[7:]
'world!'
>>> print s[:]
'hello, world!'

Repare que o elemento que reside na posição do limite superior não é retornado juntamente com a string. Veja a primeira linha do código acima, s[0:5] retorna os elementos que residem entre as posições 0 e 5, incluindo a primeira e excluindo a segunda. Como mostrado acima, também podemos omitir um dos limites, ou ambos, quando queremos algo do início até posição x, ou da posição x até o fim.

OK, mas pra que serve isso? Vamos a um exemplo bem simples: extrair o protocolo de uma URL (formato: protocolo://servidor:porta/caminho/para/recurso).

url = "http://localhost:8000/arquivo.iso"
protocolo = url[0:url.index(':')]

Esse é apenas um simples exemplo do poder que essa operação tem. Cabe ressaltar aqui, que o fatiamento cria uma nova string contendo o conteúdo solicitado na operação. Ou seja, a cada operação de fatiamento, uma nova string é criada.

É isso. Faça bom proveito desse recurso que torna o código muito mais limpo e de fácil entendimento.

4 comentários sobre “Fatiamento (slicing) de Strings em Python

  1. Pingback: Os métodos mágicos de Python | Python Help
  2. Pingback: Brincando com Listas | Python Help
  3. Pingback: each_cons — percorrendo sequências em N elementos por vez | Python Help

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s