【发布时间】:2021-07-01 04:19:38
【问题描述】:
由于我在比较温度以确定温度的形容词时遇到了许多丑陋的 if-elif,我想我可以在字典的列表中查找温度值,其中它的键将是对应的形容词温度:
def deternmine_temp(temp):
temps = {
'FREEZING' : [i for i in range(-20, 0)],
'very cold' : [i for i in range(0, 6)],
'cold' : [i for i in range(6, 11)],
'chilly' : [i for i in range(11, 16)],
'cool' : [i for i in range(16, 21)],
'warm' : [i for i in range(21, 26)],
'hot' : [i for i in range(26, 31)],
'very hot' : [i for i in range(31, 36)],
'dangerously hot' : [i for i in range(36, 40)],
'extremely dangerously hot': [i for i in range(41, 46)]
}
temp = int(temp.replace('°', '').strip())
for word, values in temps.items():
if temp in values:
return word
这比 7+ if-elif 好很多,但我认为它不是很有效,尤其是在 temps 有更多数据的情况下(例如,如果我对应于形容词的值范围更窄)。
有什么方法可以提高效率?也许字典中有一些功能?以上真的是我能想到的最好的了。
【问题讨论】:
-
只需使用
range对象
标签: python python-3.x