2

リスト(例:a = [1、5、2、5、1])を取得し、一意の値を除外して、リスト内で1回だけ発生した数値のみを返すようにするにはどうすればよいか疑問に思いました。したがって、結果としてa=[2]が得られます。

重複を除外する方法を理解できましたが、重複を取り除くにはどうすればよいですか?

正解は必要ありません。ちょっとしたヒントやヒントを歓迎します:)

私はstackoverflowでこれを見つけることができました。それは私が望むことをします、しかし私はコードを理解していません、誰かが私のためにそれを分解することができますか?

d = {}
for i in l: d[i] = d.has_key(i)

[k for k in d.keys() if not d[k]]
4

2 に答える 2

6
>>> a = [1, 5, 2, 5, 1]
>>> from collections import Counter
>>> [k for k, c in Counter(a).iteritems() if c == 1]
[2]
于 2012-10-14T03:09:07.790 に答える
0

聞くことはあなたのコードがすることです:

d = {}
for i in list:
    # if the item is already in the dictionary then map it to True,
    # otherwise map it to False 
    # the first time a given item is seen it will be assigned False,
    # the next time True
    d[i] = d.has_key(i)

# pull out all the keys in the dictionary that are equal to False
# these are items in the original list that were only seen once in the loop
[k for k in d.keys() if not d[k]]
于 2012-10-14T04:55:34.993 に答える