David Perlman wrote: > OK, I'm new to python too so I don't assume I know what I'm talking > about yet, but this looks like a mess to me. What exactly does "item > == item in word2" evaluate to? Does "in" or "==" have higher > precedence? > > I can't figure out how this would ever work at all. It seems like > it's either checking to see whether boolean TRUE is in word2, or else > it's checking to see whether item is equal to boolean TRUE or FALSE, > and neither of those should ever be true. I'm not really sure what's happening, but check this out. >>> word2 = [1,2,3,4] >>> print 555 == 555 in word2 False >>> print 1 == 1 in word2 True >>> print 0 == 0 in word2 False >>> word2.append(0) >>> print 0 == 0 in word2 True >>> > And yet it seems to be > working out the same as "item in word2". Yeah, it is working the same. It appears the == has higher precedence, or the operations are evaluated left-to-right. >>> print 0 in word2 True >>> 0 == True False
Which suggests what's really happening is >>> (0 == 0) in word2 True So it's searching the list for anything that makes the condition true. But that's not actually true. >>> (555 == 555) in word2 True >>> 555 == 555 in word2 False So It appears to work differently depending on the circumstances. In any event, it's not what the OP wanted. Hope that wasn't confusing, and maybe helped. -Luke _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor