在Python中使用带timeit的map函数

时间:2016-09-19 21:45:11

标签: python performance function dictionary timeit

我正在学习python,正在研究使用理解和map函数之间的性能差异。

到目前为止,我有这段代码:

import timeit

print timeit.timeit('[x for x in range(100)]',number = 10000)

def mapFunc(i):
    print i

print timeit.timeit('map(mapFunc,range(100))',number = 10000)

尝试这个之后,我设法让列表理解方法使用timeit正常工作,但是,我想将它与map函数进行比较。这样做时,我得到mapFunc未定义的错误,我不知道如何解决这个问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您应该通过setup参数设置函数定义:

>>> setup='def mapFunc(): print(i)'
>>> timeit.timeit('map(mapFunc,range(100))', number=10000, setup=setup)

请参阅timeit doc reference

P.S。使用map进行打印可能不太好。