Il modo migliore per rimuovere caratteri duplicati (parole) in una stringa?
-
10-07-2019 - |
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'
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