Amything
Amything

Reputation: 114

Best way to remove duplicate characters (words) in a string?

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

Answers (3)

S.Lott
S.Lott

Reputation: 391854

Do you mean?

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

That's the unique space-delimited words in no particular order.

Upvotes: 10

Brian R. Bondy
Brian R. Bondy

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

Matthew Marshall
Matthew Marshall

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

Related Questions