python – 用于汇总下几个项目的数据类型
发布时间:2020-12-20 12:07:55 所属栏目:Python 来源:网络整理
导读:我应该使用什么数据结构来表示下表 'a',1'b',2'c',3'd',4'e',5 所以计算下一行中第二项的总和似乎很自然: 例如当i = 1时 'a',2'b',3'c',4'd',5 当i = 2时 'a',2+3=5'b',3+4=7'c',4+5=9 当我= 3 'a',2+3+4=9'b',3+4+5=12 当我= 4 'a',2+3+4+5=14 我的两个想
我应该使用什么数据结构来表示下表
'a',1 'b',2 'c',3 'd',4 'e',5 所以计算下一行中第二项的总和似乎很自然: 例如当i = 1时 'a',2 'b',3 'c',4 'd',5 当i = 2时 'a',2+3=5 'b',3+4=7 'c',4+5=9 当我= 3 'a',2+3+4=9 'b',3+4+5=12 当我= 4 'a',2+3+4+5=14 我的两个想法: >最初我将该表作为子列表列表: lst = [['a',1],['b',2],['c',3],['d',4],['e',5]] 但我无法弄清楚如何进行上述计算(在 >将上面的列表拆分为两个列表,每个列表对应每列. 谢谢. 解决方法
您可以创建以下功能:
def my_sum(l,i): return [ [x[0],sum(y[1] for y in l[j: j + i])] for j,x in enumerate(l[:-i],1) ] 例子: >>> my_sum(lst,1) [['a',5]] >>> my_sum(lst,2) [['a',5],7],9]] >>> my_sum(lst,3) [['a',9],12]] >>> my_sum(lst,4) [['a',14]] 编辑: 使用numpy基于第二个想法的实现: import numpy as np def my_sum(l,i): a,b,n = [v[0] for v in lst],np.array([v[1] for v in lst]),len(l) sums = np.zeros(n,dtype=np.int) for j in xrange(1,i + 1): sums[:n - j] += b[j: n] return zip(a[:-i],sums[:-i]) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |