Python 3-2つの辞書の同じ点を検索
1199 ワード
に質問
2つの辞書で同じ点(同じキー、同じ値など)を探すにはどうすればいいですか?
ソリューション
次の2つの辞書を考慮します.
2つの辞書の同じ点を探して、2つの辞書の
これらのコレクション操作は、辞書要素の変更やフィルタリングにも使用できます.たとえば、次のようにします.
ディスカッション
辞書は、キーセットと値セットのマッピング関係です.
辞書の
辞書の
ディクショナリの
2つの辞書で同じ点(同じキー、同じ値など)を探すにはどうすればいいですか?
ソリューション
次の2つの辞書を考慮します.
a = {
'x' : 1,
'y' : 2,
'z' : 3
}
b = {
'w' : 10,
'x' : 11,
'y' : 2
}
2つの辞書の同じ点を探して、2つの辞書の
keys()
またはitems()
メソッドが結果を返す上で集合動作を実行することができる.例:# Find keys in common
a.keys() & b.keys() # Return { 'x', 'y' }
# Find keys in a that are not in b
a.keys() - b.keys() # Return { 'z' }
# Find (key,value) pairs in common
a.items() & b.items() # Return { ('y', 2) }
これらのコレクション操作は、辞書要素の変更やフィルタリングにも使用できます.たとえば、次のようにします.
c = {key:a[key] for key in a.keys() - {'w', 'z'}}
print(c)
{'y': 2, 'x': 1}
ディスカッション
辞書は、キーセットと値セットのマッピング関係です.
辞書の
keys()
メソッドは、セットのマージ、交差、差分演算などのセット操作をサポートする、キーセットを示すキービューオブジェクトを返す.したがって、setに変換することなく、辞書のキーに対して通常の集合操作を直接実行することができます.辞書の
items()
メソッドは、集合操作もサポートする(キー、値)ペアを含む要素ビューオブジェクトを返します.ディクショナリの
values()
メソッドは、値ビューがすべての値が互いに異なることを保証できないため、結果を返します.これにより、値セットをsetに変換してからセット演算を実行できるいくつかのセット操作に問題が発生します.