我正在运行一个Python脚本,它迭代两个巨大的列表并找到匹配的对。你知道吗
然而,这似乎需要永远。如何加速这个脚本?你知道吗
import sys
import random
import itertools
def main(args):
target_num = int(999999999)
num_list = range(1, target_num)
rand_list = []
hit_list = []
for _ in itertools.repeat(None, target_num):
rand_list.append(random.randint(1, target_num))
for num in num_list:
for rand_num in rand_list:
if num == rand_num:
print "hit"
if __name__ == "__main__":
main(sys.argv[1:])
如果使用python2,请使用xrange(),它将返回一个类似生成器的对象。你知道吗
使用集合
对第一个列表使用set,意味着检查该项是否在该列表中现在减少为O(1)
当我写这篇文章的时候,我意识到你甚至可以做得更好。python3中的range函数返回一个序列,因此下一部分需要python3
更好的是,使用range并在第一个循环中进行检查?你知道吗
相关问题 更多 >
编程相关推荐