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.

-Larry
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to