How to filter a dictionary ?

Shashank Singh shashank.sunny.singh at gmail.com
Tue Apr 10 03:24:16 EDT 2012


On Tue, Apr 10, 2012 at 12:16 AM, Dave Angel <d at davea.name> wrote:

> On 04/10/2012 02:04 AM, Shashank Singh wrote:
> > On Mon, Apr 9, 2012 at 10:49 PM, Nikhil Verma <varma.nikhil22 at gmail.com
> >wrote:
> > <SNIP>
> >> I am trying this but its giving me a generator object.
> >>
> >> In [9]: (k for k,v in for_patient_type.iteritems() if v == 'Real')
> >>
> > Iterating over a dict gives you all the keys, not the key value pairs
> >
>
> But that line does not iterate over the dict, it iterates over an
> iterator consisting of key/value pairs.  Note he had a call to iteritems().
>

Thanks Dave.
My bad. Nikhil, you could get the data that you wanted by your initial
approach. All you needed was to either run through the generator or just
use list comprehension

>>> g = (k for k,v in for_patient_type.iteritems() if v == 'Real')
>>> for k in g: print k
...
80
81
83
84
91
93
79
>>>


>>> [k for k,v in for_patient_type.iteritems() if v == 'Real']
[80, 81, 83, 84, 91, 93, 79]


-- 
Regards
Shashank Singh
http://www.flipora.com
http://r <http://www.cse.iitb.ac.in/~shashanksingh>ationalpie.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20120410/2c7bdf56/attachment-0001.html>


More information about the Python-list mailing list