文字列内の重複文字(単語)を削除する最良の方法は?
-
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