Neste guia, você irá descobrir como utilizar o método `split()` em Python para decompor uma sequência de caracteres em uma lista de sequências menores.
Ao lidar com strings em Python, você tem acesso a diversos métodos internos que permitem obter versões modificadas dessas sequências, como transformá-las em maiúsculas, ordenar seus caracteres e muito mais. Um desses métodos é o `.split()`, que divide uma string em Python em uma lista de strings. Exploraremos seu funcionamento com exemplos práticos de código.
Ao concluir este guia, você terá aprendido:
- O mecanismo de funcionamento do método `.split()`.
- A personalização da divisão através dos parâmetros `sep` e `maxsplit`.
Vamos começar!
Sintaxe do Método `split()` em Python
A seguir, apresentamos a sintaxe geral para empregar o método `split()` em Python sobre qualquer string válida:
string.split(sep, maxsplit) # Parâmetros: sep, maxsplit # Retorna: Uma lista de strings
Aqui, `string` pode ser qualquer sequência de caracteres válida em Python.
Os parâmetros `sep` e `maxsplit` são opcionais.
- `sep` representa o delimitador onde você deseja segmentar a string. Deve ser definido como uma string.
- `maxsplit` é um número inteiro que especifica a quantidade máxima de divisões a serem feitas na string.
Quando você não fornece valores para esses parâmetros opcionais, seus valores padrão são automaticamente utilizados.
- Se você não especificar o valor de `sep`, o espaço em branco é empregado como delimitador padrão.
- Se você não especificar o valor de `maxsplit`, o valor padrão é -1, o que significa que a string será dividida em todas as ocorrências do delimitador.
Em termos simples:
O método `split()` fragmenta uma string no máximo `maxsplit` vezes, a partir do delimitador definido no parâmetro `sep`.
Agora que compreendemos a sintaxe do método `split()` em Python, vamos prosseguir com alguns exemplos práticos.
Fragmentando uma String Python em uma Lista de Strings
Se você tiver o Python 3 instalado em sua máquina, você pode acompanhar este tutorial executando os trechos de código a seguir em um ambiente REPL do Python.
Para iniciar o REPL, execute um dos seguintes comandos em seu terminal:
$ python $ python -i
▶️ Você também pode experimentar esses exemplos no editor Python do etechpt.com.
Neste exemplo, `py_str` é uma string em Python. Vamos invocar o método `.split()` sobre `py_str` sem nenhum parâmetro e observar o resultado.
py_str = "Aprenda como usar split() em Python" py_str.split() # Saída ['Aprenda', 'como', 'usar', 'split()', 'em', 'Python']
Como você pode ver, a string foi dividida em todas as ocorrências de espaços em branco.
Dividindo uma String Python com Base em Delimitadores
#1. Em nosso primeiro exemplo, vamos separar a string `py_str` usando sublinhados duplos (`__`) como delimitador.
py_str = "Tudo__de__bom" py_str.split(sep='__') # Saída ['Tudo', 'de', 'bom']
#2. Vejamos outro exemplo. Aqui, `py_str` contém três frases, cada uma finalizada com um ponto (`.`).
py_str = "Eu adoro programar. Python é legal. Estou aprendendo Python em 2022" py_str.split(sep='.') # Saída ['Eu adoro programar', ' Python é legal', " Estou aprendendo Python em 2022"]
▶️ Ao chamar o método `.split()` nesta string, usando `.` como delimitador, a lista resultante contém três frases, conforme demonstrado na célula de código acima.
#3. Vamos formular algumas questões:
- O que acontece se o delimitador não existir na string?
- Como a divisão será realizada neste caso?
Aqui está um exemplo:
Tentamos dividir `py_str` usando o asterisco como delimitador.
py_str = "Esta linha não contém asterisco." py_str.split(sep='*') # Saída ['Esta linha não contém asterisco.']
O que não ocorre.
Como nenhuma divisão pode ser efetuada neste caso, a lista resultante contém a string completa.
Na próxima seção, veremos como utilizar o método `split()` sobre o conteúdo de um arquivo de texto.
Dividindo o Conteúdo de um Arquivo em Python
Ao trabalhar com arquivos de texto em Python, pode ser necessário fragmentar o conteúdo do arquivo – com base em um delimitador específico – para simplificar o processamento.
Aqui está um exemplo de arquivo de texto:
with open('sample.txt') as f: content = f.read() str_list= content.split(sep='...') for string in str_list: print(string,end='')
O trecho de código a seguir demonstra como usar o método `split()` sobre o conteúdo do arquivo de texto de exemplo.
- O código acima realiza as seguintes operações:
- Utiliza o gerenciador de contexto `with` para abrir e trabalhar com o arquivo de texto ‘sample.txt’.
- Lê o conteúdo do arquivo empregando o método `.read()` no objeto de arquivo `f`.
- Divide o conteúdo, com base nas reticências (`…`) como delimitador, em uma lista chamada `str_list`.
Percorre a lista `str_list` para acessar cada string e exibi-la.
# Saída Este é um arquivo de texto de exemplo Ele contém informações sobre Como começar a <a href="https://etechpt.com.com/pcap-certification/">programar em Python</a> De acordo com a Pesquisa de Desenvolvedores StackOverflow de 2022 Python é uma das linguagens de programação mais apreciadas Então, o que você está esperando? Comece a aprender!
Aqui está o resultado.
Como exercício, você pode tentar fragmentar o conteúdo de um arquivo de texto usando qualquer delimitador de sua preferência.
Dividindo uma String Python em Partes
Ao dividir uma string uma vez, você obtém duas partes; dividindo-a duas vezes, você terá três.
📋 Em geral, quando você divide uma string K vezes, você obtém K + 1 partes.
Isso é ilustrado a seguir.
Como o parâmetro `maxsplit` funciona (Imagem do autor)
py_str = "Parte#1 Eu sou uma parte maior, Parte#2" py_str.split(maxsplit=1) # Saída ['Parte#1', "Eu sou uma parte maior, Parte#2"]
#1. Definimos `maxsplit` como 1. Não especificamos um delimitador, então a divisão ocorrerá em espaços em branco por padrão.
Apesar da segunda parte da lista conter espaços em branco, a divisão não ocorre, pois agora a segmentação é controlada pelo valor de `maxsplit`, que é um.
py_str = "Parte#1 Parte#2 Eu sou uma grande Parte#3, embora eu contenha espaços em branco" py_str.split(maxsplit=2) # Saída ['Parte#1', 'Parte#2', "Eu sou uma grande Parte#3, embora eu contenha espaços em branco"]
#2. Vamos aumentar o valor de `maxsplit` para 2 e observar como a divisão ocorre no seguinte exemplo.
Assim como no exemplo anterior, o valor de `maxsplit` determina o número de divisões efetuadas. Obtemos três partes, divisões após a primeira e a segunda ocorrência de espaço em branco.
#3. O que acontece se você definir `maxsplit` como um valor maior que o número de ocorrências do delimitador?
py_str = "Há, apenas, 4, vírgulas" py_str.split(maxsplit=8) # Saída ['Há,', 'apenas,', '4,', 'vírgulas']
Na célula de código a seguir, definimos `maxsplit` como 8, apesar de a string conter apenas quatro vírgulas.
Aqui, o método `split` divide `py_str` em todas as quatro ocorrências de vírgula. Mesmo se você tentar definir `maxsplit` para um valor menor que -1, como -7, a divisão ocorrerá em todas as ocorrências do delimitador.
Em seguida, vamos combinar tudo o que aprendemos e utilizar ambos os parâmetros, `sep` e `maxsplit`.
Dividindo uma String Python em Partes com Delimitador
py_str = "Parte#1, Parte#2, Eu sou uma grande Parte#3, embora eu contenha uma ," py_str.split(sep = ',',maxsplit=2) # Saída ['Parte#1', ' Parte#2', " Eu sou uma grande Parte#3, embora eu contenha uma ,"]
#1. Suponha que precisemos dividir a string `py_str` em três partes, com base na ocorrência da vírgula (`,`). Para isso, podemos definir o valor de `sep` como `,` e o valor de `maxsplit` como 2 ao invocar o método.
Conforme demonstrado na saída, a divisão ocorre duas vezes, nas duas primeiras ocorrências do delimitador.
#2. O delimitador `sep` não precisa ser necessariamente um caractere especial. Ele pode ser uma sequência de caracteres especiais, como os sublinhados duplos que usamos anteriormente, ou mesmo uma substring.
py_str = "Você precisa aprender estruturas de dados, aprender algoritmos e aprender mais!" py_str.split(sep = 'aprender',maxsplit=2) # Saída ['Você precisa ', ' estruturas de dados, ', ' algoritmos, e aprender mais!']
Vamos definir a string `aprender` como o argumento `sep` e verificar como a divisão ocorre para diferentes valores de `maxsplit`. Aqui, definimos `maxsplit` como 2.
py_str = "Você precisa aprender estruturas de dados, aprender algoritmos e aprender mais!" py_str.split(sep = 'aprender',maxsplit=-1) # Saída ['Você precisa ', ' estruturas de dados, ', ' algoritmos, e ', ' mais!']
#3. Se você deseja dividir `py_str` em todas as ocorrências da string `aprender`, podemos invocar o método `.split()` definindo `sep = ‘aprender’` – sem o parâmetro `maxsplit`. Isso é equivalente a definir explicitamente o valor de `maxsplit` como -1, conforme apresentado na célula de código abaixo.
Notamos que a divisão ocorre em todas as ocorrências de `aprender`.
Conclusão
Espero que agora você tenha compreendido como utilizar o método `.split()` com strings em Python.
- Aqui está um resumo deste guia:
- O método integrado `.split()` em Python divide uma string em uma lista de strings.
- Utilize `string.split()` para dividir a string em todas as ocorrências do delimitador padrão, o espaço em branco.
Use `string.split(sep,maxsplit)` para dividir a string `maxsplit` vezes, a partir do delimitador `sep`. A lista resultante terá `maxsplit+1` itens.
Como próximo passo, você pode estudar como verificar se strings em Python são palíndromos ou anagramas.