> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:python- > [EMAIL PROTECTED] On Behalf Of c james > Sent: Friday, February 08, 2008 12:10 PM > To: python-list@python.org > Subject: keyword 'in' not returning a bool? > > Try this > > >>> sample = {'t':True, 'f':False} > >>> 't' in sample > True > >>> type('t' in sample) > <type 'bool'> > >>> 't' in sample == True > False > > Why is this? Now try > >>> bool('t' in sample) == True > True > > Can someone explain what is going on? >
>>> ('t' in sample) == True True It's operator precedence. 'in' has lower precedence than '=='. Therefore 't' in sample == True evaluates as 't' in (sample == True) The real question is why does 't' in (sample == True) cause an error: TypeError: argument of type 'bool' is not iterable while 't' in sample == True does not? -- http://mail.python.org/mailman/listinfo/python-list