pythonistas:哪个更快,a
类似于[ str(x) for x in list(range(100)) ]
?
ints = map(int, a)
或者
ints = [ int(x) for x in a ]
假设a
将是一个相对较大的字符串列表......
答案 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