Melhor maneira de remover caracteres duplicados (palavras) em uma string?
-
10-07-2019 - |
Pergunta
Qual seria a melhor maneira de remover quaisquer caracteres duplicados e conjuntos de caracteres separados por espaços na corda?
Eu acho que este exemplo explica melhor:
foo = 'h k k h2 h'
deve tornar-se:
foo = 'h k h2' # order not important
Outro exemplo:
foo = 's s k'
torna-se:
foo = 's k'
Solução
' '.join(set(foo.split()))
Note que split () por padrão irá dividir em todos os espaços em branco. (Por exemplo, abas, novas linhas, espaços)
Então, se você quer dividir somente em um espaço, então você tem que usar:
' '.join(set(foo.split(' ')))
Outras dicas
Você quer dizer?
' '.join( set( someString.split() ) )
É as palavras delimitado por espaço único em nenhuma ordem particular.
out = []
for word in input.split():
if not word in out:
out.append(word)
output_string = " ".join(out)
Mais do que usando um conjunto, mas mantém a ordem.
Editar: de Nevermind. Eu perdi a parte na pergunta sobre a ordem não ser importante. Usando um conjunto é melhor.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow