Pythonのリストから一意の値を取得する [重複] 質問する

Pythonのリストから一意の値を取得する [重複] 質問する

次のリストから一意の値を取得したいです。

['nowplaying', 'PBS', 'PBS', 'nowplaying', 'job', 'debate', 'thenandnow']

必要な出力は次のとおりです。

['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']

このコードは動作します:

output = []
for x in trends:
    if x not in output:
        output.append(x)
print(output)

もっと良い解決策があるのでしょうか?

ベストアンサー1

まず、リストをカンマで区切って適切に宣言します。リストをセットに変換することで、一意の値を取得できます。

mylist = ['nowplaying', 'PBS', 'PBS', 'nowplaying', 'job', 'debate', 'thenandnow']
myset = set(mylist)
print(myset)

これをリストとしてさらに使用する場合は、次のようにしてリストに戻す必要があります。

mynewlist = list(myset)

もう 1 つの可能性は、リストではなく最初からセットを使用することです (おそらくより高速です)。その場合、コードは次のようになります。

output = set()
for x in trends:
    output.add(x)
print(output)

指摘されているように、セットは元の順序を維持しません。それが必要な場合は、順序付けられた集合実装(参照この質問多くのための)。

おすすめ記事