正在检查字典值的范围

2024-06-15 09:12:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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是否在我的valid字典中相应keys的值范围内。但是这里的问题是我必须使用valid['Temp'][0]valid['Temp'][1]和{}和{}对其进行硬编码。我知道在python中,在没有选择的情况下,永远不要硬编码任何索引。有没有更好的方法可以在没有硬编码索引的情况下实现相同的输出?在


Tags: in编码ifnot情况rangetempint
1条回答
网友
1楼 · 发布于 2024-06-15 09:12:02

我可能会在这里使用运营商链接,完全放弃范围业务:

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

作为一个额外的好处,这将比创建一个列表(通过range)然后在其上迭代以找到(或不找到)值(通过inopeartor)更有效

相关问题 更多 >