5

dictのリストがあるとしましょう。「重複」は、フィールド「id」に同じ値を持つリスト内の任意の2つのdictとして定義します(他のフィールドが異なっていても)。これらの重複を削除するにはどうすればよいですか。

リストの例は次のようになります。

[{'name': 'John' , 'id':1}, {'name': 'Mike' , 'id':5},{'name': 'Dan' , 'id':5}]

この場合、「マイク」と「ダン」は重複しているため、そのうちの1つを削除する必要があります。どちらでも構いません。

4

2 に答える 2

10

それらを別の辞書にダンプしてから、それらを引き出します。

dict((x['id'], x) for x in L).values()
于 2012-06-20T07:00:26.477 に答える
2

次の関数のリスト内包表記は、問題を解決するはずです。

def f(seq):
    s = set()
    return [x for x in seq if x['id'] not in s and not s.add(x['id'])]
于 2012-06-20T07:44:19.187 に答える