python - 使用比较时如何简化长 if/elif 语句
问题描述
我试图简化这一点:
if num < 9:
y = 1
elif num < 17:
y = 2
elif num < 25:
y = 3
elif num < 33:
y = 4
elif num < 41:
y = 5
elif num < 49:
y = 6
elif num < 57:
y = 7
else:
y = 8
我还没有找到一种方法来做到这一点 - 有人可以帮助我吗?
解决方案
我想出的唯一想法是创建一个以范围为键的字典。
ranges = {range(0,9):1,range(9,17):2,range(17,25):3,range(25,33):4,range(33,41):5,range(41,49):6,range(49,57):7}
number = 10
for k,v in ranges.items():
if number in k:
print(v)
在这种情况下,输出是2
推荐阅读
- python - 将表单数据传递给视图
- three.js - 绘制本地 THREE.js 的 3D 文本
- r - 复杂分组条形图
- c++ - 关注 2d 播放器 openGL
- github - Yii2 fork: dev-custom 作为 yiisoft/yii2 存在,但这些被您的约束拒绝
- google-maps - Location/GeoLocator/GeoLocation 没有返回我的纬度和经度
- oracle - oracle 语句中的 TRUSTED/UNTRUSTED 关键字
- javascript - JavaScript 可以实现并行性吗?
- c++ - 将字符串向量移动到另一个字符串向量
- concurrency - 如何在负载运行器场景中计算以下任务的平均用户并发?有人能帮我吗?