如何在Python中加速迭代?

如何在Python中加速迭代?,python,performance,python-3.x,Python,Performance,Python 3.x,我读过几篇文章,其中说集合比列表快,但据我所知,我无法迭代集合。那么,我怎样才能使我的程序更快呢?我在做一个在线编码挑战,对于前4个输入,程序运行良好,但对于最后一个输入,有100000 T(事务)和100000 Q(查询),程序超过了时间限制,大约需要5.000318秒 虽然限制是: 时间限制:每个输入文件1.0秒。 内存限制:256 MB 源限制:1024KB T = int(input()) trans = [int(n) for n in input().split()] Q = int

我读过几篇文章,其中说集合比列表快,但据我所知,我无法迭代集合。那么,我怎样才能使我的程序更快呢?我在做一个在线编码挑战,对于前4个输入,程序运行良好,但对于最后一个输入,有100000 T(事务)和100000 Q(查询),程序超过了时间限制,大约需要5.000318秒

虽然限制是:

时间限制:每个输入文件1.0秒。 内存限制:256 MB 源限制:1024KB

T = int(input())
trans = [int(n) for n in input().split()]
Q = int(input())

for i in range(Q):
    dailyTarget = int(input())
    sum = 0
    k = 0
    while sum < dailyTarget and k < len(trans):
        sum += trans[k]
        k += 1
    if sum < dailyTarget:
        print('-1')
    else:
        print(k)
T=int(输入())
trans=[int(n)表示输入中的n().split()]
Q=int(输入())
对于范围(Q)内的i:
dailyTarget=int(输入())
总和=0
k=0
当sum
由于您总是对存储在
trans
中的相同数字求和,您是否可以预先计算总和?总之,我只是快速浏览了一下,所以我不完全确定。

大概,挑战的重点(您没有展示)不是“加快迭代”,而是找到一种不迭代解决问题的方法。好的,先生,让我想想可以做些什么。谢谢您,先生,我会看看我能从中节省多少时间。主席先生,我预先计算了总数,但时间仍然没有减少,然后关注@DanielRoseman的评论。现在应该很容易了。也就是说,如果代码返回正确的结果,它将返回正确的输出,长官,但是如果不使用迭代,我想不出任何东西。((仍处于学习阶段))那么,想想看,你有一个值的列表,试着把它们写在纸上,看看如果你看不到其中存储了什么,但可以问一个特定的值中存储了什么,你会怎么做。假设您尝试了中间的一个,它比dailyTarget小,您接下来会尝试什么?