现在我们的代码有3,000,000个id存储在set中,格式是string,我尝试使用列表理解将其转换为int。但是它花费了5秒,我如何才能降低这300万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发布于 2013-04-27 10:53:34
ld = map(int, a)应该相当快,而且也是您不考虑其他python实现的唯一选择。
发布于 2013-04-27 10:57:43
尝试使用Pypy或Cython。
这些工具可以让你的代码飞起来!( Pypy,特别是在我的PC中,Pypy将代码速度提高了4倍。)
https://stackoverflow.com/questions/16247828
复制相似问题