python:map()还是list的理解?

python: map() or list comprehension?

本问题已经有最佳答案,请猛点这里访问。

pythonistas:哪个更快,其中a类似于[ str(x) for x in list(range(100)) ]

ints = map(int, a)

ints = [ int(x) for x in a ]

假设a将是一个相对较大的字符串列表…


我的笔记本电脑(MacBook Pro 2014年年中,OSX 10.11.4,16GB DDR3 RAM,2.2 GHz Intel Core i7)上的map看起来更快(没有lambda):

用python 2.7.10测试

1
2
3
4
5
>>> timeit.timeit("[int(x) for x in range(100)]", number=100000)
1.6301331520080566

>>> timeit.timeit("map(int, range(100))", number=100000)
0.9462239742279053

但是,将map与lambda函数一起使用是最慢的:

1
2
>>> timeit.timeit("map(lambda x: int(x), range(100))", number=100000)
2.285655994415283