Python 多个 elif 替代品

标签 python

我有一个脚本,需要迭代数千个不同但简单的选项。

我可以使用 if...elif 来迭代它们,但我想知道是否有比数千个 elif 更快/更好的选择。例如

if something == 'a':
    do_something_a
elif something == 'b':
    do_something_b
elif something == 'c':
    do_something_c
elif something == 'd':
    do_something_d
...
A thousand more elifs
...
else:
    do_something_else

我要做的事情通常是运行某种函数。

最佳答案

您可以使用字典来控制多个可能的逻辑路径:

def follow_process_a():
   print('following a')

def follow_process_b():
   print('following b')

keyword_function_mapper = 
{'a' : follow_process_a ,
 'b' : follow_process_b,                     
}

current_keyword = 'a'
run_method = keyword_function_mapper[current_keyword]
run_method()

关于Python 多个 elif 替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52293173/

相关文章:

python - 不使用in的django子查询

python - 我进入 <string>' 需要字符串作为左操作数,而不是元组

python - Auth0获取access_token用于Python中的单元测试

python - "except Foo as bar"导致 "bar"从范围中删除

python - 从列表中删除元素,使用另一个列表作为索引

python - "The location of Firebird Client Library could not be determined."

python - 为什么 CTRL-C 没有被捕获并且 signal_handler 被调用?

python - 如何在Python中根据相似位置的字符/模式对文件进行分组?

python - 获取 Home Depot 的覆盖范围

Python 2, map 在简单情况下不等同于列表理解;长度依赖