我的功能有一些问题eval
。我有一个列表,例如,
list1 = [('a',1), ('b',2), ('c',3)]
我想将元组的每个值分配给第一个元素:
for el in list1 :
eval(el[0]) = el[1]
我怎样才能做到这一点?
我的功能有一些问题eval
。我有一个列表,例如,
list1 = [('a',1), ('b',2), ('c',3)]
我想将元组的每个值分配给第一个元素:
for el in list1 :
eval(el[0]) = el[1]
我怎样才能做到这一点?
你可以这样做:
exec('%s = %s' % el)
但是不要。真的,不要。你不需要动态局部变量,你需要一个字典:
my_dict = dict(list1)
你不需要eval
那个。
vars
您可以通过调用内置直接访问本地环境。这是一个示例交互式会话:
>>> list1 = [("a", 4), ("b", 8)]
>>> vars().update(dict(list1))
>>> a
4
>>> b
8
这里vars()
返回带有局部变量绑定的字典。由于它返回一个指向唯一实例的指针(不是副本),因此您可以就地修改它(.update
)。