如何在Python中加速迭代?

时间:2017-07-29 08:46:17

标签: python performance python-3.x

我读了一些帖子,据说集合比列表更快,但据我所知,我无法迭代集合。那么,我怎样才能让我的程序更快?我正在进行在线编码挑战,对于前4个输入,程序工作正常但是对于最后一个输入有100000 T(事务)和100000 Q(查询)的程序超过了时间限制,需要大约5.000318秒

虽然限制是:

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

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)

1 个答案:

答案 0 :(得分:0)

由于您总是将trans中存储的相同数字相加,您可以预先计算总和吗?无论如何,我只是快速看一下,所以我并不完全确定。