【发布时间】:2021-10-28 03:11:21
【问题描述】:
假设我们有一个这样的数据示例:
| AQI | LEVEL |
|---|---|
| 0~50 | 1 |
| 51~100 | 2 |
| 101~150 | 3 |
| 151~200 | 4 |
| 201~300 | 5 |
| >300 | 6 |
通过给定 AQI 值返回 AQI 级别的最佳方法是什么(例如:100,返回 2)
def get_level_of_aqi(aqi):
# do sth map idea like here
return level_of_aqi
我目前的方法:
def get_level_of_aqi(aqi):
if 0 <= aqi <= 50:
level = 1
elif 51 <= aqi <= 100:
level = 2
....
return level
有没有更好的改进方法?
【问题讨论】:
-
return min((aqi+49)//50, 6) -
@TimRoberts 不适用于 0。必须是
max(1, min((aqi+49)//50, 6))。 -
@DYZ 这是一个很好的答案,而且非常接近,但由于范围的大小并不完全相同,因此可能需要在此处进行一些修改
-
@AndySu 很好,我觉得比我们三个人更多的人错过了不平等的范围
标签: python python-3.x dictionary