次のリストから一意の値を取得したいです。
['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)
指摘されているように、セットは元の順序を維持しません。それが必要な場合は、順序付けられた集合実装(参照この質問多くのための)。