[EMAIL PROTECTED] wrote: > interesting. seems that "if ' ' in source:" is a highly optimized code > as it is even faster than "if str.find(' ') != -1:' when I assume they > end up in the same C loops ?
The 'in' version doesn't call a function and has a simpler compare. I would think both of those results in it being somewhat faster if it indeed calls the same C loop. >>> import dis >>> def foo(a): ... if ' ' in a: ... pass ... >>> dis.dis(foo) 2 0 LOAD_CONST 1 (' ') 3 LOAD_FAST 0 (a) 6 COMPARE_OP 6 (in) 9 JUMP_IF_FALSE 4 (to 16) 12 POP_TOP 3 13 JUMP_FORWARD 1 (to 17) >> 16 POP_TOP >> 17 LOAD_CONST 0 (None) 20 RETURN_VALUE >>> >>> def bar(a): ... if str.find(' ') != -1: ... pass ... >>> dis.dis(bar) 2 0 LOAD_GLOBAL 0 (str) 3 LOAD_ATTR 1 (find) 6 LOAD_CONST 1 (' ') 9 CALL_FUNCTION 1 12 LOAD_CONST 2 (-1) 15 COMPARE_OP 3 (!=) 18 JUMP_IF_FALSE 4 (to 25) 21 POP_TOP 3 22 JUMP_FORWARD 1 (to 26) >> 25 POP_TOP >> 26 LOAD_CONST 0 (None) 29 RETURN_VALUE >>> -- http://mail.python.org/mailman/listinfo/python-list