重複した文字や文字セットをスペースで区切って文字列に取り除く最も良い方法は何ですか?文字列内の重複する文字(単語)を削除する最も良い方法は?
私は、この例では、より良い、それを説明すると思う:
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()))
これは、特別な順序ではなく、スペース区切りのユニークな単語です。
そして「」.join(セット(someString.split()))プットそれは再び一緒に戻る –
+1しかしS.Lott、なぜあなたはpep8;嫌いですか? –
@Ali A:30年間のコーディング。 PEPの前に20歳以上。古いおなら新しいトリックスを教えることはできません。 –
out = []
for word in input.split():
if not word in out:
out.append(word)
output_string = " ".join(out)
セットを使用するよりも長いが、オーダーを維持する。
編集: Nevermind。私は重要ではないということに関する質問でその部分を見逃した。セットを使う方が良いです。
+1、注文が重要な場合、ソリューションは良い。検索を最適化するより良いバージョンを提供できますか? – iammilind
'' .join(set(foo.split()))は、最近では非常に非凡です。また、閉じ括弧もありません。 –
ありがとうジョン、私は私の答えを更新しました –
+1スペースのことについて –