Creating variables from dicts
Luis M. González
luismgz at gmail.com
Tue Feb 23 18:41:16 EST 2010
On Feb 23, 7:56 pm, Luis M. González <luis... at gmail.com> wrote:
> On Feb 23, 5:53 pm, vsoler <vicente.so... at gmail.com> wrote:
>
>
>
>
>
> > Hi,
>
> > I have two dicts
>
> > n={'a', 'm', 'p'}
> > v={1,3,7}
>
> > and I'd like to have
>
> > a=1
> > m=3
> > p=7
>
> > that is, creating some variables.
>
> > How can I do this?
>
> You are probably coming from another language and you're not used to
> python's data structures.
> If you want a list of items, you use tuples or lists. Examples:
>
> ('a', 'm', 'p') ---> this is a tuple, and it's made with
> parenthesis ()
> ['a', 'm', 'p'] ---> this is a list, and it's made with brackets
> []
>
> Check the documentation to see the difference between tuples and
> lists.
> For now, lets just use lists and forget about tuples...
> Now if you want a sequence of items ordered a key + value pairs, use a
> dictionary, as follows:
>
> {'name': 'joe', 'surname': 'doe', 'age': 21} ---> this is a dict,
> and it's made with curly braces {}.
>
> Curly braces are also used to create sets, but you don't need them now
> (check the documentation to learn more about sets).
> So going back to your question, you should have two lists, as follows:
>
> n = ['a', 'm', 'p']
> v = [1,3,7] --> note that I used brackets [], not curly
> braces {}.
>
> And now you can build a dict formed by the keys in "n" and the values
> in "v":
>
> myDict = {} --> this is an new empty dictionary
> for k,v in zip(n,v):
> myDict[k] = v
>
> This results in this dictionary: {'a': 1, 'p': 7, 'm': 3}.
>
> Hope this helps...
> Luis
By the way, if you want the variables inside myDict to be free
variables, you have to add them to the local namespace.
The local namespace is also a dictionary "locals()".
So you can update locals as follows:
locals().update( myDictionary )
This way, all the key-value pairs inside myDict become free variables.
Wich is the same as declaring them as follows:
a = 1
p = 7
etc...
Luis
More information about the Python-list
mailing list