python - Python:解决这个凌乱的 if else 结构更好
问题描述
我已经坚持了一段时间。我还没有真正写过这段代码,但如果我写的话,它看起来像这样;
i = 0 # this is an int I get from somewhere else
s = "" # this is the string that I ultimately want to use for something
if i < 1:
s = "string1"
elif i < 5:
s = "string2"
elif i < 17:
s = "string3"
等等。基本上我想分配一个不同的字符串来将不同的字符串分配给不同的区间,并且根据我属于哪个区间,我将相应的字符串分配给 s。
上面的例子真的很混乱,扩展/更改看起来很痛苦。我在想这可以用字典来解决,但我似乎不太明白。
解决方案
由于 python 3.7 dicts 是有序的。因此,您可以将阈值定义为 dict 的键并将它们链接到字符串:
D = {1: 'string1',
5: 'string2',
17: 'string3'}
x = 10
s = ""
for i in D.keys():
if x < i:
s = D[i]
break
这样您就可以在附近找到定义并保存一些if
.
推荐阅读
- html - 如何像在移动模式下一样在 Gentelella 中始终隐藏加载侧边栏?
- vb.net - 投射 IOleDropTarget pDataObj 对象时出现异常 - FORMATETC 结构无效(HRESULT 异常:0x80040064 (DV_E_FORMATETC)
- c# - WPF绑定文本块文本以更新属性,但文本由转换器更改
- javascript - Angular Material 对话框 - AGM 贴图
- mysql - 使用距离计算优化 laravel leftJoin
- python - 在给定键处拆分堆
- python - 一个 python 脚本打开一个套接字,另一个通过套接字发送数据
- python - check_output 中的 CalledProcessError 缺少 stderr 输出
- javascript - 正则表达式替换所有不匹配的内容
- variables - 使用文本字段输入获取值输出