Why does one work, but not the other?
Adonis
adonisv at REMTHISearthlink.net
Fri Jun 18 00:09:50 EDT 2004
----- Original Message -----
From: "j_mckitrick" <j_mckitrick at bigfoot.com>
Newsgroups: comp.lang.python
Sent: Thursday, June 17, 2004 9:54 PM
Subject: Why does one work, but not the other?
> I've done this before:
>
> data = [self.cong.tm[k] for k in self.cong.tm.li]
> #li is list, tm is dict
>
> instead of:
>
> for k in self.cong.tm.li:
> data.append(self.cong.tm[k])
>
> but when I try:
>
> self.liststore = [[item] for item in data]
>
>
> instead of:
>
> for item in data:
> self.liststore.append([item])
>
> I get an empty list! What gives??
>
> jonathon
>>> tm = {'a':1, 'b':2, 'c':3}
>>> li = tm.keys()
>>> data = [tm[k] for k in li]
>>> data
[1, 3, 2]
>>> # also you can do
>>> data2 = [tm[k] for k in tm]
>>> data2
[1, 3, 2]
Check the dictionary, make sure it has entries?
When supplying the dictionary with elements given by the list, make sure the
keys exist.
or you can do:
>>> data = [tm.get(k) for k in li]
Will return None if a key does not exist to further debug.
Hope this helps.
Adonis
More information about the Python-list
mailing list