当前位置: 首页 > 知识库问答 >
问题:

Python多个elif备选方案[重复]

何高歌
2023-03-14

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

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

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

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

共有3个答案

卢英叡
2023-03-14

我建议创建一个字典,将something映射到它们各自的函数。然后您可以将此词典应用于数据。

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

林元明
2023-03-14

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

def do_something_a():
    print 1

def do_something_b():
    print 2

dict = {'a': do_something_a, 'b': do_something_b}
dict.get(something)()
百里渊
2023-03-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()
 类似资料:
  • 我试图让if语句从多个条件触发,而不使用不同的触发器多次重写该语句。例如。: 你会如何把这些浓缩成一个陈述? 我尝试过使用'or',它导致任何原始输入触发语句,而不管输入是否匹配任一条件。

  • Firebase远程配置有其他选择吗?我需要为中国市场提供一个应用程序,我不确定它是否会起作用

  • 我想在我的应用程序中显示一个外部网站。与Android/iOS的WebView完全相同。 Expo的React Native WebView不支持web平台。https://docs.expo.io/versions/latest/sdk/webview/ 是否有一个世博会友好的替代方案,从web平台中的URL显示外部网站?

  • 本文向大家介绍Python if, elif, else,包括了Python if, elif, else的使用技巧和注意事项,需要的朋友参考一下 示例 在Python中,您可以定义一系列条件if,第一个条件用于elif其余条件,直到最后一个(可选)else用于其他条件条件未捕获的任何条件。 产出 Number is bigger than 2 使用else if代替elif会触发语法错误,因此是

  • 我试图向登录用户显示他们每次登录时尚未看到的通知数。为此,我有以下疑问: 问题是,随着通知数量的增加,这似乎需要一段时间。有没有一种方法可以通过连接做得更好?