我遇到了一个我无法解释的奇怪情况。这是我生成大量元组的测试时间:
In [1]: def get_list_of_tuples():
...: return [(i,) for i in range(10**6)]
...:
In [2]: %time res = get_list_of_tuples()
CPU times: user 0.93 s, sys: 0.08 s, total: 1.01 s
Wall time: 0.98 s
In [3]: %timeit res = get_list_of_tuples()
1 loops, best of 3: 92.1 ms per loop
如您所见,生成这个庞大的元组列表只需要不到一秒钟的时间。timeit 报告执行时间约为 0.1 秒。为什么两份报告的差异如此之大?
(在 IPython 0.11、Python 2.6.5 上测试。)