On 4 Jun 2013 12:28, "Carlos Nepomuceno" <[email protected]>
wrote:
>
> Started answering... now I'm asking! lol
>
> I've tried to use dict() to create a dictionary to use like the switch
statement providing variable names instead of literals, such as:
>
> >>> a='A'
> >>> b='B'
> >>> {a:0,b:1} #here the variables are resolved
> {'A': 0, 'B': 1}
>
> That's ok! But if I use dict() declaration:
>
> >>> dict(a=0,b=1)
> {'a': 0, 'b': 1} #here variable names are taken as literals
>
> What's going on? Is there a way to make dict() to resolve the variables?
Well yes.
dict(**{a:0,b:1})
The dict() constructor makes a dictionary from keyword arguments. So you
just have to feed it keyword arguments using **.
And if you're in a bad day,
dict(**locals())
--
http://mail.python.org/mailman/listinfo/python-list