Python のリストから重複する辞書を削除する
辞書のリストが与えられた場合、目標は、同じキーを共有するすべての辞書を削除することです。値のペア。たとえば、リスト [{'a': 123}, {'b': 123}, {'a': 123}] を [{'a': 123}, {'b': 123}] に変換すると、次のようになります。この目的を達成します。
これを達成するには、簡単だが強力な手法を使用できます。
[dict(t) for t in {tuple(d.items()) for d in l}]
このアプローチは次のように機能します。 3 つの異なるステップ:
コード スニペット内の変数は次のことを表します。
辞書の元の順序を維持することが重要な場合は、次の修正されたアプローチを利用できます。
seen = set() new_l = [] for d in l: t = tuple(d.items()) if t not in seen: seen.add(t) new_l.append(d)
このコードには、参照セットを維持する追加のステップが組み込まれています。どのタプル (したがって辞書) がすでに検出されているかを追跡します。表示されたセット内でタプルが見つからない場合は、セットに追加され、対応する辞書が new_l リストに追加されます。
等価 (==) を使用して辞書を直接比較することに注意することが重要です。辞書がさまざまな方法で変更されている場合、必ずしも望ましい結果が得られるとは限りません。キーと値のペアの順序が重要な場合は、タプルを作成する前に辞書の項目を並べ替えることをお勧めします。
以上が順序を維持または無視しながら、Python リストから重複する辞書を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。