この質問と同様に、辞書の 2 つのリストの共通点を知りたいです。
他の質問では、リスト内の辞書の交差を取得する方法を尋ねます。
>>> dicts = [dict(a=3, b=89, d=2), dict(a=3, b=89, c=99), dict(a=3, b=42, c=33)]
解決策は次のとおりです。
dict(set.intersection(*(set(d.iteritems()) for d in dicts)))
ただし、辞書の2つのリストの共通部分を取得し、内部辞書の共通部分を取得する方法を知りたいです。
もしわたしが持っていたら:
>>> dicts1 = [dict(a=3, b=89, d=2), dict(a=3, b=89, c=99), dict(a=3, b=42, c=33)]
>>> dicts2 = [dict(a=3, b=89, d=2), dict(a=1, b=89, c=99), dict(a=0, b=42, c=33)]
私が欲しい
{a=3m, b=89, b=42}
印刷するのは、dicts1 のすべての辞書で発生するからではなく、dicts1 の辞書と dict2 の辞書で発生するためです。各配列のどこにあるかは気にしません。それが起こるというだけです。