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

“switch”/“case”用于在Python中确定要分配给的变量

颛孙庆
2023-03-14

我想使用“switch/case”结构来决定根据某个参数为哪个变量赋值:

a, b = [init_val] * 2
# This doesn't exist in Python.
switch param
    case 'a':
        a = final_val
    case 'b':
        b = final_val

在Python中的开关语句的替换问题中描述的字典方法在这里不起作用,因为您既不能分配给函数调用

a, b = [init_val] * 2
switcher = {
    'a': a,
    'b': b
}
switcher.get(param) = final_val

也不要通过将变量存储在字典中来更改其值:

switcher[param] = final_val  # switcher['a'] is only a copy of variable a

我可以坚持使用if/elif,但是因为我经常看到基于某个参数确定输出的字典解决方案(如上述问题),所以我很好奇是否有类似的解决方案来确定集合中的哪个变量的变量,为其赋值。

共有1个答案

陆才俊
2023-03-14

一般来说,Python没有内置的switch/case功能。相反,通常的做法是使用elif关键字:

a, b = [init_val] * 2
if param == 'a':
    a = final_val
elif param == 'b':
    b = final_val
else:
    pass # or do something else
 类似资料:
  • 您可以使用多个if...else…if语句(如上一章所述)来执行多路分支。 但是,这并不总是最佳解决方案,尤其是当所有分支都依赖于单个变量的值时。 从JavaScript 1.2开始,您可以使用switch语句来处理这种情况,并且它比重复if...else if语句更有效。 流程图 (Flow Chart) 以下流程图说明了switch-case语句的工作原理。 语法 (Syntax) switc

  • 问题内容: 将数学应用于变量的常用方法是 是否可以像这样计算和操纵两个操作数? 然后我该如何连接op和两个变量以及? 我知道我可以比较运到,,,,然后分配和计算.... 但是我可以做些什么,如何告诉编译器op是运算符? 问题答案: 您可以使用运算符模块和字典:

  • 我试图用Python实现switch-case语句。我需要帮助,因为控制台上没有打印任何内容。我想用这个开关触发一些功能。

  • 问题内容: 我想知道是否有一种方法可以在java switch case语句中执行不区分大小写的匹配。默认实现 区分大小写 。请参见下面的示例。 因此,以上语句作为输出返回。而且我正在尝试使其像 不区分大小写的 匹配一样工作。我尝试将字符串文字都转换为小写,然后进行比较。但无法做到。 问题答案: 如果要这样做:只需确保输入数据全部为小写,并使用小写… 本地化问题 同样,古老的本地化问题再次引起人们

  • 主要内容:case 子句,default语句JS switch case 语句与 if else 语句的多分支结构类似,都可以根据不同的条件来执行不同的代码;但是与 if else 多分支结构相比,switch case 语句更加简洁和紧凑,执行效率更高。 JavaScript switch case 语句的语法格式如下: switch 语句根据表达式的值,依次与 case 子句中的值进行比较: 如果两者相等,则执行其后的语句段,当遇到 b

  • switch语句执行基于变量或表达式值的语句组。关键字case和otherwise描述语句组。只执行第一个匹配的情形。用到switch则必须用end与之搭配。 魔方算法的逻辑也可以如下描述 switch (rem(n,4)==0) + (rem(n,2)==0) case 0 M = odd_magic(n) case 1 M = single_eve