我正在尝试比较两个字典。每个词典都有一个键和分配给该键的2个值。每个字典的长度可以不同。
我希望编写一个循环,该循环首先检查两个字典中的键是否匹配。然后检查第一字典中的第一和第二值是否在第二字典中的第一和第二值之间。
示例字典:
gas_dict ={{'methane': (85, 98), 'ethane': (1, 12), 'propane': (0.1, 6)...x}
scope_dict ={'methane': (35, 100), 'ethane': (0.05, 15), 'propane': (1, 11)...n}
其中x和y <= 20,但可以是不同的数字。
我的部分代码成功检查了密钥是否匹配:
for key in scope_dict.keys():
if key in gas_dict.keys():
但是,我一直试图找出如何比较2个键的4个值。
答案 0 :(得分:2)
Order
答案 1 :(得分:1)
我认为这是解决您问题的方法:
def gas_in_scope(gas_dict, scope_dict):
# For each gas
for k, (g1, g2) in gas_dict.items():
# Get scope values
if k not in scope_dict:
return False
s1, s2 = scope_dict[k]
# Check gas values are within the scope
if not (s1 <= g1 <= s2 and s1 <= g2 <= s2):
return False
# If all values are fine then return true
return True
print(gas_in_scope({'methane': (85, 98), 'ethane': ( 1, 12)},
{'methane': (35, 100), 'ethane': (0.05, 15)}))
# True
print(gas_in_scope({'methane': (85, 98), 'ethane': ( 1, 12), 'propane': (0.1, 6)},
{'methane': (35, 100), 'ethane': (0.05, 15), 'propane': ( 1, 11)}))
# False