2012-05-30 4 views
0

Я хотел бы установить переменную на основе другой переменной. В моем случае var1 может быть «mean», «sum» или «max» (вход обрабатывается из gui). На основе этих строк я хочу, чтобы установил (условно) другую переменную; например: если var1 является «средним», то var2 = 2, если var1 = «sum», тогда var2 = 4, если var1 = «max», то var2 = 6.Установить переменную python условно

Каков наилучший способ для этого (для новичок)? Если я использую его в процедуре if else, то нужно, чтобы переменные global использовали их также вне if? Есть ли рекомендуемая процедура?

+0

* «Если я использую его в процедуре if else, мне нужно заставить переменные global использовать их также вне if?» * No, но было бы целесообразно заранее объявить переменную. –

+0

следуйте за процессом построения словаря. – diffracteD

ответ

2

Поскольку питон не имеет встроенной о включении случае, вещий способ сделать это состоит в использовании Dict:

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

Вам больше не нужно думать о масштабах переменного (хотя это хороший вопрос, чтобы подумать об этом!).

6

Использование словаря:

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

Если var1 не содержится в d, var2 будет по умолчанию None. Если вы хотите другое значение по умолчанию:

var2 = d.get(var1, 0) 
+0

Проклятье, избили меня на 30 секунд. –

+0

@ChristianWitts Это уже давно ... Раньше у меня было 4 секунды. – jamylak

2

Как насчет использования словарей?

mapping = {'mean': 2 
     , 'sum' : 4 
     , 'max' : 6 
      } 
var1 = 'mean' 
var2 = mapping[var1] 
# or 
var2 = mapping.get(var1) # To avoid KeyErrors 
Смежные вопросы