Reputation: 114
What would be the best way of removing any duplicate characters and sets of characters separated by spaces in string?
I think this example explains it better:
foo = 'h k k h2 h'
should become:
foo = 'h k h2' # order not important
Other example:
foo = 's s k'
becomes:
foo = 's k'
Upvotes: 2
Views: 18373
Reputation: 391854
Do you mean?
' '.join( set( someString.split() ) )
That's the unique space-delimited words in no particular order.
Upvotes: 10
Reputation: 347226
' '.join(set(foo.split()))
Note that split() by default will split on all whitespace characters. (e.g. tabs, newlines, spaces)
So if you want to split ONLY on a space then you have to use:
' '.join(set(foo.split(' ')))
Upvotes: 13
Reputation: 5873
out = []
for word in input.split():
if not word in out:
out.append(word)
output_string = " ".join(out)
Longer than using a set, but it keeps the order.
Edit: Nevermind. I missed the part in the question about order not being important. Using a set is better.
Upvotes: 6