使用timeit时导入的正确方法是什么?

时间:2011-01-07 21:57:39

标签: python import timeit

我正在测试one of my previous questions (turning a list into a dictionary)中的以下代码:

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 个答案:

答案 0 :(得分:5)

在设置中执行此操作。毕竟,每次创建一个dict时都不会重新导入模块 - 整个程序只需要一次。您不关心导入模块的时间。