Tim Henderson wrote: > peter (Thanks for clarifying to whom you were responding... I saw the other post but wouldn't have responded since it didn't seem to be in response to one of mine. :-) )
> would not the more correct way to do this be short circuit > evaluation. somthing along lines of > > if (len(item) > 0) and (item[0] == '-'): pass This is "correct" only in a narrow sense. I wouldn't call it "correct Python" if I saw it in code around here. Most likely (since this always depends on context), I would replace it with this: if item and item[0] == '-': pass I think it's probably unlikely that the first test would be needed only on that one line, so it's even more likely that "if item" test would be done first, by itself, and then other tests on item[0] would be done. If this was code that needed high performance (i.e. had been detected with proper profiling as a serious bottleneck) then the slicing approach would be better (as Fredrik demonstrated). Hmm... just realized we're going way off track, since we actually have the original code here and don't need to comment on hypotheticals. It appears to me that the original input is being treated as some sort of fixed-length record, with certain characters and text in predefined positions, specified by index number. With that in mind, I'd actually say the original code is just fine with "if item[0:1] == '-'" and given the context it is pretty readable (ignoring the awful formatting with no whitespace around operators) and "correct". Using ".startswith()" might have been equally appropriate, but without knowing more detail of the input data I couldn't say. -Peter -- http://mail.python.org/mailman/listinfo/python-list