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'
Foi útil?

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
scroll top