我正在问这个问题,以获得Pythonic方法的起点,使用列表推导来减少以下字典中的一些列表内容:
{'cycle1': [1, 2407, 2393, 14],
'cycle2': [2, 1657, 1652, 5],
'cycle3': [3, 2698, 2673, 25],
'cycle4': [4, 2116, 2102, 14],
'cycle5': [5, 2065, 2048, 17],
'cycle6': [6, 1633, 1615, 18]}
每个列表的列虽然没有标记,但却有以下标题:
section_num,account_total,billable_count,nonbillable_count
我想在列表推导中对最后三列中的每一列,account_total,billable_count,non-billable_count求和。
我只是不确定如何在理解中总结每个列表成员。我需要询问每个键的值,每个值都是一个列表。我只是不确定如何做到这一点。
答案 0 :(得分:3)
如何使用zip
?这是每列的单独总和,但我不确定这是你想要的。
[sum(x) for x in zip(*my_dict.values())[1:]]
输出:
[12576, 12483, 93]
答案 1 :(得分:2)
对于请求的输出格式有点不清楚,但下面的行汇总了第二列:
In [13]: c = {'cycle1': [1, 2407, 2393, 14],
'cycle2': [2, 1657, 1652, 5],
'cycle3': [3, 2698, 2673, 25],
'cycle4': [4, 2116, 2102, 14],
'cycle5': [5, 2065, 2048, 17],
'cycle6': [6, 1633, 1615, 18]}
In [14]: sum([v[1] for k, v in c.iteritems()])
Out[14]: 12576
使用python3.3
>>> sum([v[1] for v in c.values()])
12576