3

重複の可能性:
順序を維持しながら Python のリストから重複を削除するにはどうすればよいですか?

リストを考えてみましょう:

x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']

これらの重複する値 list-x を削除し、結果を次のようにしたい:

y = ['a', 'b', 'c', 'd', 'z']
4

3 に答える 3

11

順序が重要でない場合は、セットを使用します。

>>> list(set(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']))
['a', 'p', 'c', 'b', 'd']

順序が重要な場合は、 OrderedDictを使用します。

>>> from collections import OrderedDict 
>>> OrderedDict.fromkeys(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']).keys()
['a', 'b', 'c', 'd', 'p']
于 2012-07-18T12:42:02.073 に答える
4

順序の維持については何も述べられていないため、このアプローチは機能します。

x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']

list(set(x))

あなたにあげます

['a', 'c', 'b', 'd', 'z']

リストを a に変更すると、setすべての重複がなくなります。list()重複していないデータをリストに戻すことを申請します。

于 2012-07-18T12:39:02.713 に答える
2

使用することもできます

y=[ x[i] for i in range(len(x)) if not x[i] in x[:i]]

これが可能な限り簡単な解決策になると思います。

于 2012-07-18T12:44:24.617 に答える