Лучший способ удалить повторяющиеся символы (слова) в строке?
-
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)
Дольше, чем пользоваться набором, но порядок сохраняет.
Редактировать: Неважно.Я пропустил часть вопроса о том, что порядок не важен.Лучше использовать набор.
Не связан с StackOverflow