2

我问这个问题是为了获得 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。

我只是不确定如何总结每个列表成员的理解。我需要询问每个键的值,每个值都是一个列表。我只是有点不确定如何做到这一点。

4

2 回答 2

3

怎么用zip?这会对每一列进行单独的总和,尽管我不确定这是你想要的。

[sum(x) for x in zip(*my_dict.values())[1:]]

这输出:

[12576, 12483, 93]
于 2013-05-08T17:58:59.320 回答
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
于 2013-05-08T17:58:35.893 回答