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(字典映射)