Phillip J. Eby wrote: >>Only contains expressions are translated: >> >> "if x in [1,2,3]" >> >>currently turns into: >> >> "if x in (1,2,3)" >> >>and I'm proposing that it go one step further: >> >> "if x in Seachset([1,2,3])" > > ISTM that whenever I use a constant in-list like that, it's almost always > with just a few (<4) > items, so it doesn't seem worth the extra effort (especially disrupting the > marshal module) just > to squeeze out those extra two comparisons and replace them with a hashing > operation.
it could be worth expanding them to "if x == 1 or x == 2 or x == 3:" though... C:\>timeit -s "a = 1" "if a in (1, 2, 3): pass" 10000000 loops, best of 3: 0.11 usec per loop C:\>timeit -s "a = 1" "if a == 1 or a == 2 or a == 3: pass" 10000000 loops, best of 3: 0.0691 usec per loop C:\>timeit -s "a = 2" "if a == 1 or a == 2 or a == 3: pass" 10000000 loops, best of 3: 0.123 usec per loop C:\>timeit -s "a = 2" "if a in (1, 2, 3): pass" 10000000 loops, best of 3: 0.143 usec per loop C:\>timeit -s "a = 3" "if a == 1 or a == 2 or a == 3: pass" 10000000 loops, best of 3: 0.187 usec per loop C:\>timeit -s "a = 3" "if a in (1, 2, 3): pass" 1000000 loops, best of 3: 0.197 usec per loop C:\>timeit -s "a = 4" "if a in (1, 2, 3): pass" 1000000 loops, best of 3: 0.225 usec per loop C:\>timeit -s "a = 4" "if a == 1 or a == 2 or a == 3: pass" 10000000 loops, best of 3: 0.161 usec per loop </F> _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com