Найти - Пользователи
Полная версия: Повторные числа
Начало » Центр помощи » Повторные числа
1 2
FishHook
Chern
Покажу фокус:
>>> from timeit import Timer
>>> d=dict(enumerate(range(1000000)))
>>> func1="""def foo():
...         for i in xrange(0,10000000):
...             if i in d: d[i]
...             else: pass
...       """
>>> 
>>> func2="""def foo():
...         for i in xrange(0,10000000):
...             try: d[i]
...             except KeyError: pass
...       """
>>> t = Timer(stmt=func1)
>>> t2 = Timer(stmt=func2)
>>> print "if %s usec/pass" % t.timeit(number=1000000)
if 0.0738561153412 usec/pass
>>> print "try %s usec/pass" % t2.timeit(number=1000000)
try 0.0838830471039 usec/pass
У меня результаты другие!
if 0.069727897644 usec/pass
try 0.0694489479065 usec/pass


Chern
FishHook
У меня результаты другие!

Хм. Запустил десяток раз - результаты меняются то в одну, то в другую сторону
fata1ex
Я при оптимизации меняю по возможности try-except на if in, потому что раньше как-то при тестах так оказалось быстрее :) Видимо, все не так просто.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB