0

我想根据另一个变量设置一个变量。在我的情况下,var1 可以是“mean”、“sum”或“max”(从 gui 解析的输入)。基于这些字符串,我想(有条件地)设置另一个变量;比如:如果 var1 是“平均值”那么 var2 = 2,如果 var1 = “sum”那么 var2=4,如果 var1 = “max”那么 var2 = 6。

最好的方法是什么(对于初学者)?如果我在 if else 过程中使用它,我需要使变量成为全局变量以在 if 之外使用它们?有推荐的程序吗?

4

3 回答 3

6

使用字典:

d = {'mean': 2,
     'sum': 4,
     'max': 6}
var2 = d.get(var1)

如果var1不包含在 中dvar2将默认为None。如果你想要另一个默认值:

var2 = d.get(var1, 0)
于 2012-05-30T09:19:58.383 回答
2

用字典怎么样?

mapping = {'mean': 2
         , 'sum' : 4
         , 'max' : 6
          }
var1 = 'mean'
var2 = mapping[var1]
# or
var2 = mapping.get(var1) # To avoid KeyErrors
于 2012-05-30T09:20:33.113 回答
2

由于 python 没有内置的 switch-case 语句,一个 pythonic 的方法是使用一个 dict:

>>> d = {'mean': 2, 'sum': 4, 'max': 6}
>>> var1 = "max"
>>> var2 = d[var1]
>>> var2
6

您不再需要考虑变量的范围(尽管考虑它是个好问题!)。

于 2012-05-30T09:25:26.507 回答