# Speeding up python comparisons

Did you know that the following would *even run* in Python?

>>> x = 10 >>> y = 20 >>> z = 30 >>> z < x < y

Well, it turns out you can combine comparisons arbitrarily and skip evaluating a variable twice. Not only does this work, but it's faster!

>>> x = 10 >>> y = 20 >>> z = 30 >>> z < x < y False >>> if x > z or x < y: print 't' t >>> %timeit z < x < y 10000000 loops, best of 3: 59.7 ns per loop >>> %timeit x > z or x < y 10000000 loops, best of 3: 131 ns per loop

Ok, so **71.3 ns** is not going to really change your application all that much. However, this is a rare situation where the optimized version of the code is actually more **readable** as well.

Published: 04-15-2013 17:50:00