我试图根据某些输入为变量赋值。这就是我目前所做的事情:
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'
所以基本上它根据var
的值将给定值映射到a
。这可能是以某种方式 pythonified 吗?
答案 0 :(得分:14)
您可以使用字典:
var_map = {1: 'foo', 2: 'bar', 10: 'spam'}
var = var_map[a]
如果a
是一个连续的整数,你也可以使用一个列表:
var_map = [None, 'some_value', 'another_one', 'text_string', 'one_more', 'final_str']
var = var_map[a]
此处var_map[0]
设置为None
以保持序列图简单。
答案 1 :(得分:1)
如果要多次阻止运行,可能需要使用字典。
d = {
'1':'value_1',
'2':'value_2',
'3':'value_3',
'4':'value_4',
'5':'value_5'
}
var = d[a]
答案 2 :(得分:1)
使用list
或(恕我直言更好)a dict
:
VALUES = {1: "a", 2:"b", 3:"c", } # etc
var = VALUES.get(a, "some default value")
答案 3 :(得分:0)
由于你基本上有键/值对,如果你以相应的顺序对它们进行某种迭代,你可以这样结婚:
dictionary_for_a = {}
for x,y in zip(a,var):
dictionary_for_a[x] = y
答案 4 :(得分:0)
我想你想做一个switch
陈述。
这是我的方法:
# All conditions make a dict
condition = {1:'some_value',
2:'another_one',
3:'text_string',
4:'one_more',
5:'final_str'}
i = 4
if i in condition.keys():
var = condition[i]
print var # 'one_more'