> 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.
If you know that elements in a list are unique (so only appear once), you may want to look at using sets. Evert > >>> 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. > > thanks again. > > > > > > From: Steven D'Aprano <st...@pearwood.info> > To: tutor@python.org > Sent: Wed, September 15, 2010 7:27:05 AM > Subject: Re: [Tutor] selecting elements from dictionary > > On Wed, 15 Sep 2010 12:10:59 pm Hs Hs wrote: > > > I want to print only those items that have [1,2] and [1,3] in any > > order, such as [1,2] or [2,1], [3,1] or [1,3] > > > > >>> for item in xdic.keys(): > > > > ... if [1,2] in xdic[item]: > > ... print item > > > > I get a wrong answer, > > That's because you ask the wrong question. > > [1,2] in xdic[item] doesn't check to see if 1 is in the list, then if 2 > is in the list. It looks to see if one of the items is *exactly* [1,2]. > > >>> [1,2] in [1,2,3,4] > False > >>> [1,2] in [1,2,3,4, [1,2]] > True > > > > I know the values are there. How can I print > > only those item that have [1,2] and [1,3] > > for key, value in xdic.items(): > if 1 in value and 2 in value or 3 in value: > print key > > > > > -- > Steven D'Aprano > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor