0

他の変数に基づいて変数を設定したいと思います。私の場合、var1は「平均」、「合計」、または「最大」(GUIから解析された入力)にすることができます。これらの文字列に基づいて、(条件付きで) 別の変数を設定します。同様に、var1 が「平均」の場合は var2 = 2、var1 = 「合計」の場合は var2=4、var1 = 「最大」の場合は 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 に答える