Como usar o método split() em Python

Neste tutorial, você aprenderá a usar o método split() do Python para dividir uma string em uma lista de strings.

Ao trabalhar com strings do Python, você pode usar vários métodos de string integrados para obter cópias modificadas de strings, como converter para maiúsculas, classificar uma string e muito mais. Um desses métodos é o .split() que divide uma string Python em uma lista de strings, e aprenderemos mais sobre isso com exemplos de codificação.

Ao final do tutorial, você terá aprendido o seguinte:

  • como o método .split() funciona
  • como personalizar a divisão usando os parâmetros sep e maxsplit

Vamos começar!

Sintaxe do método split() em Python

Aqui está a sintaxe geral para usar o método split() do Python em qualquer string válida:

string.split(sep, maxsplit)

# Parameters:
sep, maxsplit

# Returns:
A list of strings

Aqui, string pode ser qualquer string Python válida.

Os parâmetros sep e maxsplit são opcionais.

  • sep denota o separador no qual você gostaria de dividir a string. Deve ser especificado como uma string.
  • maxsplit é um inteiro que especifica quantas vezes você deseja dividir a string.

Seus valores padrão são usados ​​quando você não fornece parâmetros opcionais.

  • Quando você não fornece o valor sep explicitamente, o espaço em branco é usado como separador padrão.
  • Quando você não especifica o valor para maxsplit, o padrão é -1, o que significa que a string será dividida em todas as ocorrências do separador.

Fraseando a sintaxe em linguagem simples:

O método split() divide uma string maxsplit número de vezes na ocorrência do separador especificado pelo parâmetro sep.

  Como cancelar a assinatura do Adobe Acrobat

Agora que aprendemos a sintaxe do método split() do Python, vamos continuar a codificar alguns exemplos.

Dividir uma string Python em uma lista de strings

Se você tem Python 3 instalado em sua máquina, você pode codificar com este tutorial executando os seguintes trechos de código em um Python REPL.

Para iniciar o REPL, execute um dos seguintes comandos no terminal:

$ python
$ python -i

▶️ Você também pode experimentar esses exemplos no editor Python do etechpt.com.

Neste exemplo py_str é uma string Python. Vamos chamar o método .split() em py_str sem nenhum parâmetro e observar a saída.

py_str = "Learn how to use split() in Python"
py_str.split()

# Output
['Learn', 'how', 'to', 'use', 'split()', 'in', 'Python']

Como visto acima, a string é dividida em todas as ocorrências de espaço em branco.

Dividir uma string Python na ocorrência de separadores

#1. Como primeiro exemplo, vamos dividir a string py_str com sublinhados duplos (__) como separador.

py_str = "All__the__best"
py_str.split(sep='__')

# Output
['All', 'the', 'best']

#2. Vamos dar outro exemplo. Aqui, py_str tem três sentenças, cada uma terminada por um ponto (.).

py_str = "I love coding. Python is cool. I'm learning Python in 2022"
py_str.split(sep='.')

# Output
['I love coding', ' Python is cool', " I'm learning Python in 2022"]

▶️ Quando chamamos o método .split() nesta string, com ‘.’ como separador, a lista resultante tem três sentenças, conforme visto na célula de código acima.

#3. Vamos fazer algumas perguntas:

  • O que acontece quando o separador nunca ocorre na string?
  • Como a divisão ocorrerá neste caso?

Aqui está um exemplo:

Tentamos dividir py_str na ocorrência de asterisco

py_str = "This line contains no asterisk."
py_str.split(sep='*')

# Output
['This line contains no asterisk.']

– o que não ocorre.

Como nenhuma divisão pode ser feita neste caso, a lista resultante contém a string inteira.

Na próxima seção, veremos como podemos usar o método split() no conteúdo de um arquivo de texto.

Dividir o conteúdo de um arquivo Python

Ao trabalhar com arquivos de texto em Python, pode ser necessário dividir o conteúdo do arquivo – com base em um separador – para facilitar o processamento.

  Como corrigir o aplicativo Weather não atualizando no iPhone

Aqui está um arquivo de texto de exemplo:

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 abaixo mostra como usar a divisão no conteúdo do arquivo de texto de exemplo.

  • O código acima faz o seguinte:
  • Usa o gerenciador de contexto with para abrir e trabalhar com o arquivo de texto ‘sample.txt’.
  • Lê o conteúdo do arquivo usando o método .read() no objeto arquivo f.
  • Divide o conteúdo na ocorrência das reticências do separador (…) em uma lista str_list.

Faz um loop em str_list para acessar cada string e imprime.

# Output
This is a sample text file
It contains info on
Getting started with <a href="https://etechpt.com.com/pcap-certification/">programming in Python</a>
According to the 2022 StackOverflow Developer Survey
Python is one of the most-loved programming languages
So what are you waiting for? Start learning!

Aqui está a saída.

Como exercício, você pode tentar dividir o conteúdo de um arquivo de texto em qualquer separador de sua escolha.

Dividir uma string Python em pedaços

Quando você divide uma string uma vez, obtém dois pedaços; dividindo-o duas vezes terá três.

📋 Em geral, quando você divide uma string K vezes, obtém K + 1 pedaços.

Isso é ilustrado abaixo.

Como funciona o parâmetro maxsplit (Imagem do autor)

py_str = "Chunk#1  I'm a larger chunk, Chunk#2"
py_str.split(maxsplit=1)

# Output
['Chunk#1', "I'm a larger chunk, Chunk#2"]

#1. Definimos maxsplit igual a 1. Não especificamos um separador, então a divisão ocorrerá em espaços em branco por padrão.

Embora a segunda parte da lista contenha espaços em branco, a divisão não ocorre porque a divisão agora é controlada pelo valor maxsplit de um.

py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces"
py_str.split(maxsplit=2)

# Output
['Chunk#1',
 'Chunk#2',
 "I'm one large Chunk#3, even though I contain whitespaces"]

#2. Vamos aumentar o valor maxsplit para 2 e observar como ocorre a divisão para o exemplo a seguir.

Assim como no exemplo anterior, o valor maxsplit decide o número de divisões feitas. Obtemos três pedaços, divisões após a primeira e a segunda ocorrência do espaço em branco.

#3. O que acontece se você definir maxsplit como um valor maior que o número de ocorrências do separador?

py_str = "There, are, only, 4, commas"
py_str.split(maxsplit=8)

# Output
['There,', 'are,', 'only,', '4,', 'commas']

Na célula de código a seguir, definimos maxsplit como 8 quando a string contém apenas quatro vírgulas.

  Como cancelar o depósito Robinhood

Aqui, o método split divide py_str em todas as quatro ocorrências de uma vírgula. Mesmo se você tentar definir maxsplit para um valor menor que -1, digamos, -7, a divisão será feita em todas as ocorrências do separador.

Em seguida, vamos juntar tudo o que aprendemos e usar os dois parâmetros sep maxsplit.

Dividir uma string Python em pedaços em um separador

py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ,"
py_str.split(sep = ',',maxsplit=2)

# Output
['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]

#1. Suponha que precisamos dividir a string py_str em três partes na ocorrência da vírgula (,). Para fazer isso, podemos definir o valor sep como ‘,’ e o valor maxsplit como 2 na chamada do método.

Conforme visto na saída, a divisão ocorre duas vezes nas duas primeiras ocorrências do separador.

#2. O separador sep nem sempre precisa ser um caractere especial. Pode ser uma sequência de caracteres especiais, como os sublinhados duplos que usamos anteriormente, ou pode até ser uma substring.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=2)

# Output
['You need to ', ' data structures, ', ' algorithms, and learn more!']

Vamos definir a string ‘learn’ como o argumento sep e ver como a divisão ocorre para valores variados de maxsplit. Aqui, definimos maxsplit como 2.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=-1)

# Output
['You need to ', ' data structures, ', ' algorithms, and ', ' more!']

#3. Se você quiser dividir py_str em todas as ocorrências da string ‘learn’, podemos chamar este método .split() configurando sep = ‘learn’—sem o parâmetro maxsplit. Isso equivale a definir explicitamente o valor maxsplit como -1, conforme mostrado na célula de código abaixo.

Vemos que a cisão ocorre em todas as ocorrências de ‘aprender’.

Empacotando

Espero que agora você tenha entendido como usar o método .split() com strings Python.

  • Aqui está um resumo deste tutorial:
  • O método .split() integrado do Python divide uma string em uma lista de strings.
  • Use string.split() para dividir a string em todas as ocorrências do separador padrão, espaço em branco.

Use string.split(sep,maxsplit) para dividir a string maxsplit número de vezes na ocorrência do separador sep. A lista resultante tem maxsplit+1 itens.

Como próximo passo, você pode aprender como verificar se as strings do Python são palíndromos ou anagramas.