减少if/else阻止

Gab*_*iel 2 python

我正在尝试根据某些输入为变量赋值.这就是我目前所做的事情:

if a == 1:
    var = 'some_value'
elif a == 2:
    var = 'another_one'
elif a == 3:
    var = 'text_string'
elif a == 4:
    var = 'one_more'
elif a == 5:
    var = 'final_str'
Run Code Online (Sandbox Code Playgroud)

所以基本上它var根据值来映射一个给定的值a.这可能以某种方式被python化吗?

Mar*_*ers 14

你可以使用字典:

var_map = {1: 'foo', 2: 'bar', 10: 'spam'}
var = var_map[a]
Run Code Online (Sandbox Code Playgroud)

如果a是顺序整数,您也可以使用列表:

var_map = [None, 'some_value', 'another_one', 'text_string', 'one_more', 'final_str']
var = var_map[a]
Run Code Online (Sandbox Code Playgroud)

这里var_map[0]设置为None保持序列图简单.

  • 我不会写一个答案,因为Martijn会比其他人更快地改变他的答案. (6认同)