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

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

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

  • Получить уникальные элементы из списка списков?
  • Дублирование экземпляров модели и связанных с ними объектов в Django / Algorithm для повторного дублирования объекта
  • Отбросить все повторяющиеся строки в Python Pandas
  • Проверка дубликатов в плоском списке
  • Поиск дубликатов файлов и их удаление
  • Удалить дубликаты из текстового файла
  • foo = 'hkk h2 h' 

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

     foo = 'hk h2' # order not important 

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

     foo = 'ssk' 

    будет выглядеть так:

     foo = 'sk' 

  • Python: как я могу включить разделитель (ы) в разделение строк?
  • Удалить пустые строки из списка строк
  • Конкатенация строк без оператора «+» в python
  • Преобразование строки в вложенные структуры, такие как список
  • Как я могу разделить и проанализировать строку в Python?
  • Разделение на последний разделитель в строке Python?
  • 3 Solutions collect form web for “Лучший способ удалить повторяющиеся символы (слова) в строке?”

     ' '.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) 

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

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

    Python - лучший язык программирования в мире.