Python多个elif替代品

Python multiple elif alternatives

本问题已经有最佳答案,请猛点这里访问。

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
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

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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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()


您可以通过以下方式使用字典:

1
2
3
4
5
6
7
8
def do_something_a():
    print 1

def do_something_b():
    print 2

dict = {'a': do_something_a, 'b': do_something_b};
dict.get(something)();


我建议创建一个字典,将一些东西映射到它们各自的功能。然后您可以将此字典应用于数据。

更多信息:https://jaxenter.com/implement-switch-case-statement-python-138315.html(字典映射)