Como dividir as cordas em Python

Como dividir as cordas em Python
Este artigo explicará como dividir strings em python usando métodos "split ()" e "partition ()". Esses métodos são especialmente úteis se você deseja converter uma frase ou um grupo de palavras em tipos de python para parsácia e iterável. Todas as amostras de código neste guia são testadas com Python versão 3.8.6.

Método dividido

O método "split ()" pode ser usado para dividir palavras usando um separador especificado pelo usuário. Ele retorna uma lista de palavras divididas sem incluir o separador. Se nenhum separador for especificado pelo usuário, o espaço em branco (um ou mais) é usado como um único separador.

Por exemplo, o código abaixo retornará “['Linux', 'Dint']” como saída:

text = "Linux Dica"
texto.dividir()

O código abaixo retornará “['Linuxhint', 'com']” como saída quando “.”É usado como separador:

text = "linuxhint.com "
texto.dividir(".”)

O separador não precisa ser um único personagem. O método dividido leva dois argumentos:

  • Sep: separador a ser usado para dividir
  • maxsplit: número de divisões para fazer

Ambos esses argumentos são opcionais. Como mencionado acima, se o argumento "set" não for especificado, o espaço em branco será usado como um separador para dividir. O argumento "maxsplit" tem um valor padrão de "-1" e divide todas as ocorrências por padrão. Considere o código abaixo:

text = "linuxhint.co.nós"
texto.dividir(".”)

Ele retornará "['linuxhint', 'co', 'nós']" como saída. Se você quiser parar de se separar na primeira ocorrência do separador, especifique "1" como o argumento "maxsplit".

text = "linuxhint.co.nós"
texto.dividir(".”, 1)

O código acima retornará “['Linuxhint', 'CO.nós '] ”como saída. Basta especificar o número de ocorrências em que você deseja que o processo dividido pare como o segundo argumento.

Observe que, se houver separadores consecutivos, uma corda vazia será retornada para os restantes separadores após a primeira divisão (quando o argumento "maxsplit" não for usado):

text = "Linuxhint ... com"
texto.dividir(".")

O código acima retornará "['Linuxhint'", 'com'] "como saída. Caso você queira remover strings vazios da lista resultante, você pode usar a seguinte declaração de compreensão da lista:

text = "Linuxhint ... com"
resultado = texto.dividir(".")
resultado = [item para item no resultado se o item != ""]
Imprimir (resultado)

Você receberá “['Linuxhint', 'com']" como a saída após a execução do exemplo de código acima.

Observe que o método "split ()" passa da esquerda para a direita para dividir cordas em palavras. Se você deseja dividir a corda da direção da direita para a esquerda, use "rsplit ()" em vez disso. Sua sintaxe, uso e argumentos são exatamente os mesmos que o método "split ()".

Se nenhum separador for encontrado na string enquanto usa métodos "split ()" ou "rsplit ()", a string original é retornada como o único elemento da lista.

Método de partição

O método "partition ()" pode ser usado para dividir strings e funciona idêntico ao método "split ()" com algumas diferenças. A diferença mais notável é que ele mantém o separador e o inclui como um item na tupla resultante contendo palavras divididas. Isso é especialmente útil se você deseja dividir a string em um objeto iterável (tupla neste caso) sem remover nenhum caractere original. Considere o código abaixo:

text = "linuxhint.com "
resultado = texto.partição (".")
Imprimir (resultado)

A amostra de código acima retornará “('Linuxhint', '.',' com ') "como a saída. Se você deseja que o resultado seja do tipo de lista, use a seguinte amostra de código:

text = "linuxhint.com "
resultado = lista (texto.partição ("."))
Imprimir (resultado)

Você deve obter “['linuxhint', '.',' com '] ”como saída após executar o exemplo de código acima.

O método "partition ()" leva apenas um argumento chamado "set". Os usuários podem especificar um separador de qualquer comprimento. Ao contrário do método "Split ()", esse argumento é obrigatório, então você não pode omitir o separador. No entanto, você pode especificar o espaço em branco como um separador.

Observe que o método de partição para na primeira ocorrência do separador. Portanto, se sua sequência contiver vários separadores, o método "partition ()" ignorará todas as outras ocorrências. Aqui está um exemplo ilustrando o seguinte:

text = "linuxhint.co.nós"
resultado = lista (texto.partição ("."))
Imprimir (resultado)

A amostra de código produzirá “['Linuxhint', '.',' CO.nós '] ”como saída. Se você deseja se dividir em todas as ocorrências do separador e incluir o separador na lista final, você pode ter que usar um padrão de "expressão regular" ou "regex". Para o exemplo mencionado acima, você pode usar um padrão regex da seguinte maneira:

importar re
text = "linuxhint.co.nós"
resultado = re.dividir("(\.)", texto)
Imprimir (resultado)

Você vai obter "['linuxhint', '.',' co ','.',' nós '] ”como saída após executar o exemplo de código acima. O personagem DOT foi escapado na declaração regex mencionada acima. Observe que, embora o exemplo acima funcione com um único caractere de ponto, ele pode não funcionar com separadores complexos e strings complexos. Pode ser necessário definir seu próprio padrão regex, dependendo do seu caso de uso. O exemplo é mencionado aqui para dar uma idéia sobre o processo de reter o separador na lista final usando declarações regex.

O método "partition ()" às vezes pode deixar strings vazios, especialmente quando o separador não é encontrado na string a ser dividido. Nesses casos, você pode usar as instruções de compreensão da lista para remover strings vazios, conforme explicado na seção "Split ()" do método acima.

texto = "Linuxhint"
resultado = lista (texto.partição ("."))
resultado = [item para item no resultado se o item != ""]
Imprimir (resultado)

Depois de executar o código acima, você deve obter “['Linuxhint']” como saída.

Conclusão

Para divisões simples e simples, você pode usar métodos "Split ()" e "Partition ()" para obter tipos iteráveis. Para cordas e separadores complexos, você precisará usar declarações regex.