python:map()或list comprehension?

时间:2016-04-03 22:51:41

标签: python

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

ints = map(int, a)

或者

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

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

1 个答案:

答案 0 :(得分:5)

map在我的笔记本电脑上看起来更快(没有lambda)(Macbook Pro Mid 2014,OSX 10.11.4,16GB DDR3 ram,2.2 GHz Intel Core i7)

使用Python 2.7.10进行测试

>>> timeit.timeit("[int(x) for x in range(100)]", number=100000)
1.6301331520080566

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

但是,使用带有lambda函数的map是最慢的:

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