【发布时间】:2012-07-19 15:14:21
【问题描述】:
也许以前有人问过这个问题,但我找不到。 我正在尝试实现一些东西来确定给定值的范围。在这个例子中,x 可以是任何实数。
def f(x):
if x < 0.1:
do_something_1()
elif 0.1 <= x < 1:
do_something_2()
elif 1 <= x < 10:
do_something_3()
elif x >= 10:
do_something_4()
...你明白了。
我见过很多用字典替换 Python 中的 switch 语句的例子,但我一直将字典理解为索引离散值。
我很难相信 if-elif-else 链是这种情况下的最佳解决方案。有谁知道更好的吗?
【问题讨论】:
-
我真的不明白 C 的
switch语句会如何改进这段代码。你能启发我吗? -
什么方面的最佳解决方案?速度 ?可读性? ...
-
我不是一个经验丰富的 C 专家,但你不能做,例如,
case 0.1 <= x < 1?我知道打字少了很多,但我觉得代码的意图更清晰。也许我误解了switch的工作原理。 -
@poorsod:不,你不能。即使可以,
case 0.1 <= x < 1比elif 0.1 <= x < 1好多少? -
-1 这并不真正构成一个问题。投票结束。
标签: python dictionary switch-statement