質問

重複する文字や文字列内のスペースで区切られた文字セットを削除する最良の方法は何ですか?

この例はそれをより良く説明していると思います:

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