リスト内の個々の文字列から重複を削除

LaeoःURB:

私は、文字列のリストを指定した場合、リストの個々の文字列から重複文字を削除することをPythonプログラムを書き込もうとしています。私の仕事は今のところです。

#program: removeduplicates.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("-lst", nargs='+', type=str, required=True)
xyz = parser.parse_args()
duplist = xyz.lst

def duplicate_destoryer(duplist):
    finallist = []
    for word in duplist:
        x = set()
        list = []
        for ch in word:
            if ch not in x:
                set.add(ch)
                list.append(ch)
        finallist.append(list)

    return finallist


if __name__ == "__main__":
    print(duplicate_destoryer(duplist))

私のコマンドラインI入力で

python removeduplicates.py -lst aarrtt ddwwtt

そして私の所望の出力は(または単に書き出さリストカッコ内の場合は関係ありません)です。

art dwt

コードは、私が作るが、論理的に私には意味が、私はエラーになっ保つ書いた記述を「SET」のための「アドオンを」「strの」オブジェクトには適用されないオブジェクトを公正かつすべてのですが、私はさらに研究を行うように私は、私のように感じますコードのより多くの例を横切ってくるset.add()文字列オブジェクトで使用されています。

または右方向の誰かのポイント私は、私がここで間違ってやっている何を教えてもらえますか?

オースティン:

あなたは非常に非常に近接しています。ただ、以下を使用する必要があります。

x.add(ch)

の代わりに:

set.add(ch)

あなたが期待する文字列のリストとは対照的に、つまり、出力として、リストのリストを取得します。あなたが行うことができます修正するには:

finallist.append(''.join(list))

の代わりに:

finallist.append(list)

あなたが使用してはならないことに注意してくださいlist変数名のために。これは、ビルトインのPythonあるのです。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=392061&siteId=1