给datatable增加行总和和列总和

[[["TYPE",""],["April",""],["May",""]],
 [["RED",""],[15 , "item3,item9"] [9 , "item7,item3"]],
 [["BLUE",""],[7 , "item7,item8"] [2 , "item1,item8"]],
 [["GREEN",""],[10 , "item5,item8"] [7 , "item3,item7"]]
]

希望生成类似于

 [["RED",""],[15 , "item3,item9"] [9 , "item7,item3"],[24,"item3,item7,item9"]],
 [["BLUE",""],[7 , "item7,item8"] [2 , "item1,item8"]],[9,"item1,item7,item8"],
 [["GREEN",""],[10 , "item5,item8"] [7 , "item3,item7"],[17,"item3,item5,item7"]]
 [["TOTAL",""],[32 , "item5,item8"] [18 , "item3,item7"],[50,"item3,item5,item8"]]]

我写了这样

def helper(x,y):
    return [x[0]+y[0],x[1]+y[1]]
def colum(x,y):
    return [helper(x[i],y[i]) for i in range(len(x))]
for line in table[1:]:
    line.append(reduce(helper,line[1:]))
table.append(reduce(colum,table[1:]))
table[0].append(["RowTotal",""])
table[-1][0]=["TOTAL",""]
for line in table:
    print(line)

可以写的更加简单吗?觉的可以加个map,省去定义colum函数,但没有成功。

阅读 3.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进