Первый (один if
с and
) быстрее: -)
Я опробовал его, используя timeit
.Вот результаты:
Variant 1: 9.82836714316
Variant 2: 9.83886494559
Variant 1 (True): 9.66493159804
Variant 2 (True): 10.0392633241
Для двух последних первое сравнение равно True
, поэтому второе пропускается.Интересные результаты.
import timeit
print "Variant 1: %s" % timeit.timeit("""
for i in xrange(1000):
if i == 2*i and i == 3*i:
pass
""",
number = 1000)
print "Variant 2: %s" % timeit.timeit("""
for i in xrange(1000):
if i == 2*i:
if i == 3*i:
pass
""",
number = 1000)
print "Variant 1 (True): %s" % timeit.timeit("""
for i in xrange(1000):
if i == i and i == 3*i:
pass
""",
number = 1000)
print "Variant 2 (True): %s" % timeit.timeit("""
for i in xrange(1000):
if i == i:
if i == 3*i:
pass
""",
number = 1000)