繁体   English   中英

python中列表中的顺序和

[英]Sequential sum in list by python

我在python中有一个表格(清单清单),例如:(Python 3)

packets = [[a, b, (0+a), (0+b)], [e, f, (0+a+e), (0+b+f)], [i, j, (0+a+e+i), (0+b+f+j)]]

第一列是数据包的大小,第二列是时间差。 我想在第三栏中计算总大小,在第四栏中计算时间总和。

我的代码是:

for c in range (1, len(packets)):
    packets[c][2] = packets[c-1][2] + packets[c][0]
    packets[c][3] = packets[c-1][3] + packets[c][1] 

但是由于packets的大小接近一百万,我遇到了memoryerror

请建议我一种解决此内存问题的方法。

尝试使用xrange函数而不是range:

for c in xrange(1,len(packets)):
    packets[c][2]=packets[c-1][2]+packets[c][0]
    packets[c][3]=packets[c-1][3]+packets[c][1] 

https://docs.python.org/2/library/functions.html#xrange

编辑

如果您不能使用xrange ,请自己制作:

def myrange(start, end):
    while True:
        if start == end:
            break
        yield start
        start += 1

for i in myrange(1, 10):
    print i

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM