[英]Search for Keys using values in two dictionaries and output matching keys in Python
[英]Only compare values of matching keys in two dictionaries in python
簡單比較的最Python方式是什么:
dict1 = {'Class1': 10, 'Class2': 18, 'Class3': 5}
dict2 = {'Class1': 10, 'Class2': 18, 'Class4': 11}
for key in dict1:
for key2 in dict2:
if key == key2:
self.assertEqual(dict1[key], dict2[key2])
我覺得我做一個嵌套的for循環來比較所有dict2鍵和dict1中的每個鍵的解決方案效率低下。 目的是僅比較dict1和dict2都具有的鍵的值。
您可以獲得迭代和比較的關鍵交集
dict1.keys() & dict2.keys()
例如,
>>> {k: (dict1[k], dict2[k]) for k in dict1.keys() & dict2.keys()}
{'Class1': (10, 10), 'Class2': (18, 18)}
# or
>>> for k in dict1.keys() & dict2.keys():
print(dict1[k], dict2[k])
18 18
10 10
以@Mitch的答案為基礎,您可以在all
進行比較:
dict1 = {'Class1': 10, 'Class2': 18, 'Class3': 5}
dict2 = {'Class1': 10, 'Class2': 18, 'Class4': 11}
all(dict1[k] == dict2[k] for k in dict1.keys() & dict2.keys())
或者您的情況:
self.assertTrue(all(dict1[k] == dict2[k] for k in dict1.keys() & dict2.keys()))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.