Лучший способ удалить повторяющиеся символы (слова) в строке?

StackOverflow https://stackoverflow.com/questions/636977

  •  10-07-2019
  •  | 
  •  

Вопрос

Как лучше всего удалить в строке повторяющиеся символы и наборы символов, разделенные пробелами?

Я думаю, что этот пример объясняет это лучше:

foo = 'h k k h2 h'

должно стать:

foo = 'h k h2' # order not important

Другой пример:

foo = 's s k'

становится:

foo = 's k'
Это было полезно?

Решение

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

Обратите внимание, что функция Split() по умолчанию разделяется по всем пробельным символам.(например.табуляции, новые строки, пробелы)

Итак, если вы хотите разделить ТОЛЬКО на пространство, вам нужно использовать:

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

Другие советы

Ты имеешь ввиду?

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

Это уникальные слова, разделенные пробелами, в произвольном порядке.

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

Дольше, чем пользоваться набором, но порядок сохраняет.

Редактировать: Неважно.Я пропустил часть вопроса о том, что порядок не важен.Лучше использовать набор.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top