Quebrando uma string e removendo espaços extras (Python)

Você recebe uma string que possui vários valores separados por vírgula (ou qualquer outro caractere), divide ela e fica com um vetor cheio de valores que podem ou não possuir um espaço antes ou depois da string. Nestes casos, você faz um segundo passo, que é remover os espaços de cada um dos valores do seu vetor. No exemplo deste post, vou mostrar como fazer estes dois passos de uma vez.

 

Se você está pensando que o segundo passo pode ser evitado apenas solicitando que o usuário não utilize espaços entre os valores, então você está delirando. Não confie na boa vontade ou memória do usuário. É sua responsabilidade garantir que os dados lidos estarão no formato que você precisa. (OK, pode não ser sua obrigação, mas é uma boa prática…)

Deixando a filosofia de lado, vamos ao exemplo prático…

Vamos demonstrar o problema:

No código acima, quebramos a string e a transformamos em um vetor e jogamos este resultado na função print. Isso vai gerar o seguinte output:

Salvo pelo primeiro item, os outros possuem espaços extras e precisamos remove-los.

 

O modo ‘demorado’ de fazer estas operações seria assim:

No fonte acima, repetimos a demonstração do problema para conseguir compara-la com a resolução. O passo 01 é bem simples: quebrar a string (.split(“,”) e jogar o resultado em um for. O segundo passo é remover os espaços extras (.strip() e incluir o resultado desta remoção no vetor).
(Este exemplo está no meu GitHub)

Simples, certo? OK, são só 2 linhas de código, mas podemos reduzir isso para apenas 01 linha de código.

 

Agora vamos para o exemplo mais otimizado:

Neste script, repetimos a demonstração do problema, mas resolvemos ele utilizado a list comprehension do Python. O que está sendo feito no passo 01 deste exemplo é o mesmo que foi feito nos passos 01 e 02 do exemplo anterior: A string está sendo transformada em um vetor e cada elemento deste vetor está sendo tratado (removendo os espaços extras). O retorno destas operações é um vetor (list), como é indicado pelos [] que estão em volta dos comandos.

(Este exemplo está no meu GitHub)

 

Espero ter ajudado.

 

Referência:

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, Python and tagged , , .