Skip to content Skip to sidebar Skip to footer

How To Eval A String Containing An Equal Symbol?

I have some issues with the eval function. I have a list like, for example, list1 = [('a',1), ('b',2), ('c',3)] and I would like to assign each value of a tuple to the first eleme

Solution 1:

You could do this:

exec('%s = %s' % el)

But don't. Really, don't. You don't need dynamic local variables, you need a dictionary:

my_dict = dict(list1)

Solution 2:

You don't need eval for that.

You can access local environment directly by calling the vars builtin. Here's an example interactive session:

>>>list1 = [("a", 4), ("b", 8)]>>>vars().update(dict(list1))>>>a
4
>>>b
8

Here vars() returns the dict with local variable bindings. Since it returns a pointer to the only instance (not a copy), you can modify it in place (.update).

Post a Comment for "How To Eval A String Containing An Equal Symbol?"