keyword 'in' not returning a bool?

Larry Bates larry.bates at
Fri Feb 8 18:15:58 CET 2008

c james wrote:
> 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?

Precedence.  In:

't' in sample == True

sample == True is evaluated first
then 't' in that which is false

you should write

('t' in sample) == True

but that is unnecessary because

t' in sample

is easier to read and to code and less prone to this problem.


More information about the Python-list mailing list