私はこのような形でJSONから生成辞書のいくつかのmilionsのリストを持っている:Python - 複雑なオブジェクトの順序付きリストから重複を削除しますか?
{
"_id":XXX,
"some_other":"fields",
...
}
リストは、しかし、重複_id
とdisctionariesがある_id
キーで安全ソートする必要があります。実際にはリストのサイズと比較して重複はほとんどありません(最大10-100程度)。私は最初に(または最後に、それが決定論的である限り重要ではない)各複製の辞書を取ってほしい_id
。 JavaScriptで私は以下を使用したいと思います:
list.sort((a,b)=>a._id>b._id?1:(a._id<b._id?-1:0))
.filter((ent,i,arr)=>i==0||ent!=arr[i-1])
しかし、私はフィルタのpythonの変形は、アイテムのインデックスにアクセスできないと思いますか? Pythonでこのようなことを達成するための同様の短い方法はありますか?私はsorted(...)
という機能を使って、私が望む方法でこのリストを並べ替えることができますが、重複しているものをフィルタリングする方法はまだ分かりません。
あなたはsorted'と 'filter''を見てきましたか?Pythonは 'map'、' filter'、 'reduce'構文を持っています。' lambda args: 'を使って、Pythonの(無意味で)匿名の関数構文と同等の式を書くことができます。フィルタリング/マッピングのために、頻繁にリスト内包(および関連するコンストラクト、例えば 'dict'内包、' set'内包、さらにはジェネレータ式)はより慣用的と見なされます。 –