valid = {'Temp': [10, 55], 'rain_percent': [49, 100], 'humidity': [30,50]}
data = {'Temp': 30.45, 'rain_percent': 80.56 }
min_temp , max_temp = valid['Temp']
if not(min_temp <= data['Temp'] <= max_temp):
print "Bad Temp"
min_rain , max_rain = valid['rain_percent']
if not(min_rain <= data['rain_percent'] <= max_rain):
print "It's not going to rain"
这就是我正在使用的2个字典。我知道可以进一步修改此检查。由于两个字典ievalid
和data
具有相同的字典keys
,因此必须有一些更好的方法来实现此检查。有人可以帮我吗?非常感谢。
如果我对问题的理解正确,则您正在尝试检查每个值data[k]
是否在2元素列表/元组定义的范围内valid[k]
。
尝试使用for
循环并dict.items()
进行遍历data
,并将每个值与以下内容中的相应范围进行比较valid
:
valid = {'Temp': [10, 55], 'rain_percent': [49, 100], 'humidity': [30,50]}
data = {'Temp': 30.45, 'rain_percent': 80.56, 'humidity': 70 }
for key,val in data.items():
min, max = valid[key]
if not( min <= val <= max ):
print "%s=%g is out of valid range (%g-%g)" % (key, val, min, max)
else:
print "%s=%g is in the valid range (%g-%g)" % (key, val, min, max)
对于data
我给出的示例值,它将显示以下内容:
rain_percent=80.56 is in the valid range (49-100)
Temp=30.45 is in the valid range (10-55)
humidity=70 is out of valid range (30-50)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句