使用python 3.2在嵌套列表中有两列输入数据:[0]中的物种代码和[1]中的观察值以及每行中计算的另外两列[2]和[3]值,例如:
sorted_trees=[
['ACRU', 5, 1, 10],
['ACRU', 6, 2, 11],
['QURU', 7, 3, 12],
['QURU', 8, 4, 13]]
我需要,并且(通过帮助)获得[2]和[3]中每个物种代码[0]的小计:
import itertools as it, operator as op
for k,g in it.groupby(sorted_trees, key=op.itemgetter(0)):
tempg=list(g)
print(k, sum(i[2] for i in tempg), sum(i[3] for i in tempg))
现在我需要制作另一个列表,称之为summary_trees,只需要这些值,这样我就可以在其他地方使用它了。这个例子就是:
summary_trees=[[ACRU, 3, 21],[QURU, 7, 25]]
看起来这应该很简单,我觉得愚蠢不要看到它。 在现实生活中,存在不确定数量的物种代码,通常在4-8之间
答案 0 :(得分:1)
看起来像使用打印输出构建列表一样简单......
import itertools as it, operator as op
summary_trees = []
for k,g in it.groupby(sorted_trees, key=op.itemgetter(0))
tempg=list(g)
summary_trees.append([k, sum(i[2] for i in tempg), sum(i[3] for i in tempg)])