文字列内のスペースで区切られた重複文字および文字セットを削除する最良の方法は何でしょうか?
この例はそれをよりよく説明していると思います:
foo = 'h k k h2 h'
次のようになります。
foo = 'h k h2' # order not important
その他の例:
foo = 's s k'
になります:
foo = 's k'
文字列内のスペースで区切られた重複文字および文字セットを削除する最良の方法は何でしょうか?
この例はそれをよりよく説明していると思います:
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)
セットを使用するよりも長くなりますが、順序は維持されます。
編集:気にしないでください。順序が重要ではないという質問の部分を見逃しました。セットを使った方がお得です。