【发布时间】:2019-02-25 12:48:33
【问题描述】:
在阅读有关 Loop 与 List comprehension 与 Map 的速度的文章时,我通常会发现在使用 lambda 函数时,list comprehension 比 map 更快。
这是我正在运行的测试:
import timeit
def square(range):
squares = []
for number in range:
squares.append(number*number)
return squares
print(timeit.timeit('map(lambda a: a*a, range(100))', number = 100000))
print(timeit.timeit('[a*a for a in range(100)]', number = 100000))
print(timeit.timeit('square(range(100))', 'from __main__ import square', number = 100000))
结果:
0.03845796199857432
0.5889980600004492
0.9229458660011005
因此,尽管使用 lambda 函数,但 Map 无疑是赢家。 python 3.7 是否发生了变化,导致了显着的速度提升?
【问题讨论】:
-
尝试打印
map的结果... -
您忘记将地图对象转换为列表
标签: python python-3.x performance list-comprehension python-3.7