[Tutor] selecting elements from dictionary

Adam Bark adam.jtm30 at gmail.com
Wed Sep 15 16:52:56 CEST 2010


On 15/09/10 15:31, Hs Hs wrote:
> Dear Steven,
> Thanks for your help.
>
> however I have a question,
>
> using:
>
> for key, value in xdic.items():
>     if 1 in value and 2 in value or 3 in value:
>         print key
>
>
> also print keys that have values such as [1,2,3].
>
> In cases where there is [1,2,3] and [1,2] also reported.
>
> How can I extract those keys that have values only [1,2] and [1,3] 
> exclusively.
>
>
> >>> xdic = {75796988: [1, 2, 3], 75797478: [1, 2, 3], 75797887:[1,2], 
> 75797987:[3,1]}
> >>> for key, value in xdic.items():
> ...     if 1 in value and 2 in value or 3 in value:
> ...             print key
> ...
> 75797987
> 75796988
> 75797478
> 75797887
>
>
> Here all 4 keys appear. Instead I want to get only 75797887:[1,2] and 
> 75797987:[3,1]
> how can I force this.
If you just have a few specific cases you can use "in" to check whether 
the values you are interested in appear in a specified collection, ie:

 >>> xdic = {75796988: [1, 2, 3], 75797478: [1, 2, 3], 75797887:[1,2], 
75797987:[3,1]}
 >>> for key, value in xdic.items():
...     if value in ([1,2], [2,1], [1,3], [3,1]):
...             print key
...
75797987
75797887

HTH


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100915/05f8af41/attachment-0001.html>


More information about the Tutor mailing list