从字典值中检查范围

时间:2014-09-08 15:02:53

标签: python list dictionary key key-value

valid = {'Temp': [10, 55], 'rain_percent': [40, 90]}
Temp = 30.3
Raining = 86. 88
if int(Temp) not in range(valid['Temp'][0], valid['Temp'][1]):
    print "Bad Temp readings"
if int(Raining) not in range(valid['rain_percent'][0], valid['rain_percent'][1]):
    print "Bad Rain Percentage readings"

这就是我检查变量TempRaining是否在我的keys词典中相应valid的值范围内的方法。但这里的问题是我必须使用valid['Temp'][0]valid['Temp'][1]使用索引01对其进行硬编码。我知道在python中你不应该对任何索引进行硬编码,直到没有这样做就没有选择。如果没有硬编码索引,有没有更好的方法来实现相同的输出?

1 个答案:

答案 0 :(得分:2)

我可能会在这里使用操作员链接并完全放弃范围业务:

lower_valid_temp, upper_valid_temp = valid['Temp']
if lower_valid_temp <= Temp <= upper_valid_temp:
    print "..."

作为一个额外的好处,这比创建一个列表(通过range)然后迭代它以找到(或找不到)值(通过in opeartor)<更有效率< / p>