Domanda

Quale sarebbe il modo migliore per rimuovere eventuali caratteri duplicati e set di caratteri separati da spazi nella stringa?

Penso che questo esempio lo spieghi meglio:

foo = 'h k k h2 h'

dovrebbe diventare:

foo = 'h k h2' # order not important

Altro esempio:

foo = 's s k'

diventa:

foo = 's k'
È stato utile?

Soluzione

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

Nota che split () per impostazione predefinita verrà suddiviso su tutti i caratteri degli spazi bianchi. (ad esempio schede, newline, spazi)

Quindi se vuoi dividere SOLO su uno spazio devi usare:

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

Altri suggerimenti

Intendi?

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

Queste sono le uniche parole delimitate da spazi in nessun ordine particolare.

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

Più lungo rispetto all'uso di un set, ma mantiene l'ordine.

Modifica: Nevermind. Ho perso la parte della domanda sull'ordine non importante. Usare un set è meglio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top