如何以百万项目的价格减少5秒到1秒的python列表理解成本

lin*_*nbo 0 python optimization performance

现在我们的代码在set中存储了3,000,000个id,格式为string,我尝试使用list comprehension将其转换为int.但它耗时5秒,如何降低这些3,000,000 id的字符串转换为int的成本?

这是我的测试代码:

import random
import time


a = set()
for i in xrange(3088767):
    a.add(str(random.randint(10005907, 100000000)))

start = time.time()
ld = [int(i) for i in a]
end = time.time()
print end-start
Run Code Online (Sandbox Code Playgroud)

结果是:

$python  -V
Python 2.6.5
$python  ld.py
5.53777289391
Run Code Online (Sandbox Code Playgroud)

jam*_*lak 5

ld = map(int, a)
Run Code Online (Sandbox Code Playgroud)

应该是更快,也是你唯一的选择不考虑其他python实现