Pregunta

¿Cuál sería la mejor manera de eliminar los caracteres duplicados y los conjuntos de caracteres separados por espacios en cadena?

Creo que este ejemplo lo explica mejor:

foo = 'h k k h2 h'

debería convertirse en:

foo = 'h k h2' # order not important

Otro ejemplo:

foo = 's s k'

se convierte en:

foo = 's k'
¿Fue útil?

Solución

' '.join(set(foo.split()))

Tenga en cuenta que split () por defecto se dividirá en todos los espacios en blanco. (por ejemplo, pestañas, líneas nuevas, espacios)

Entonces, si desea dividir SOLAMENTE en un espacio, entonces debe usar:

' '.join(set(foo.split(' ')))

Otros consejos

¿Quieres decir?

' '.join( set( someString.split() ) )

Esas son las palabras únicas delimitadas por espacios sin ningún orden en particular.

out = []
for word in input.split():
    if not word in out:
        out.append(word)
output_string = " ".join(out)

Más tiempo que usar un conjunto, pero mantiene el orden.

Editar: No importa. Me perdí la parte de la pregunta sobre que el orden no es importante. Usar un conjunto es mejor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top