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

时间:2013-04-27 02:52:23

标签: python performance optimization

现在我们的代码在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

结果是:

$python  -V
Python 2.6.5
$python  ld.py
5.53777289391

2 个答案:

答案 0 :(得分:5)

ld = map(int, a)

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

答案 1 :(得分:2)

尝试使用PypyCython

这些工具可以使你的代码飞起来! (Pypy,特别是在我的PC Pypy中加速代码4次..)