将dict中值赋给对应变量

假设有变量
a=b=c=d=e=f=None
同时传来dict
{'a':'1','e':'2','f':'3'}
然后将字典中值传给变量 a=1 e=2 f=3
最后print(a,b,c,d,e,f)
1,None,None,None,2,3

dict中值数量、名称都不一定,有可能有{'a':'1','e':'2','f':'3'}
也有可能是{'a':'1','f':'3'} 如果有{'x':'1'}不存在的非法输入过滤掉

除了用if逐个判断外,有没有好的方式快速按key对应赋值给变量

阅读 6.7k
3 个回答
my_dict = {'a': 5, 'x': 3, 'e': 'haha'}
a=b=c=d=e=f=None

var = locals()
for key in my_dict:
    if key in var:
        var[key] = my_dict[key]

print(a, b, c, d, e, f)

变量假如有个列表[a,b,c,d,e],传过来的dict
赋值操作不就直接:

a = dict.get['a']
b = dict.get['b']
c = dict.get['c']
......

循环一遍处理即可

def fn(a=None, b=None, c=None, d=None, e=None, f=None):
    return a, b, c, d, e, f

def fn1(*args, **kwargs):
    return tuple(kwargs[_] if _ in kwargs else None for _ in args)

d = {'a':'1','e':'2','f':'3'}
k = ['a', 'b', 'c', 'd', 'e', 'f']

print fn(**d)
print fn1(*k, **d)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题