Правильный способ импорта при использовании timeit? - PullRequest
5 голосов
/ 08 января 2011

Я тестировал следующий код из одного из моих предыдущих вопросов (превращение списка в словарь) :

single = ['key1', 'value1', 'key2', 'value2', 'key3', 'value3']

if __name__ == '__main__':
    from timeit import Timer
    print Timer("dict(zip(single[::2], single[1::2]))",
        "from __main__ import single").timeit()
    print Timer("si = iter(single); dict(izip(si, si))",
        "from __main__ import single; from itertools import izip").timeit()

И я не уверен, рекомендуется ли при использовании timeit импортировать izip в оператор или настройку Timer (я предполагаю, что настройка, но результат определения времени окончания зависит от того, что я делаю) .

В любом случае, я просто надеялся, что вы, парни, поймете какие-то дополнительные соображения по поводу синхронизации вашего кода и т. Д. (Кроме того, я просто пытаюсь учиться - я не страдаю от преждевременной оптимизации или чего-то еще.)

Спасибо.

1 Ответ

5 голосов
/ 08 января 2011

Сделайте это в настройках. В конце концов, вы не будете повторно импортировать модуль каждый раз, когда создаете dict - только один раз для всей программы. Вы не заботитесь о сроках импорта модуля.

...