-3

我有一个变量 V 取值 { 1, 43, ... },我想根据 V 所取的确切值分配给变量 Z 值 { X1, X2, ... }。示例:如果 V 为 1,则 Z 为 X1。如果 V 出乎意料地不是定义值集的一部分,则行为可能是“未定义的”。

基本上,我不知道如何在 Python 中执行 switch 语句。在手册中,我没有找到“开关”。

4

3 回答 3

2
z_values = {
    1: X1,
    42: X2,
    }

Z = z_values[V]

如果 V 不是有效值之一,您还没有说您想要发生什么。

于 2012-07-22T01:49:33.130 回答
1
if v == 1:
    z = 'x1'
elif v == 42:
    z = 'x2'

除非我完全误解了你想要什么,否则你是在要求一个简单的 if 语句......?

于 2012-07-22T01:49:41.787 回答
1

如果它是一个简单的“If X then Y else Z”(x ? y : z在许多其他语言中),那么这应该有效:

target = y if x else z

如果你想要的基本上是一个开关,那么这样的东西应该可以工作:

def func_x():
    print "x"
def func_y():
    print "y"
def func_z():
    print "z"
def default():
    print "nope"
{
    "x": func_x,
    "y": func_y,
    "z": func_z
}.get(input, default)()
于 2012-07-22T01:54:53.520 回答