我有一个如下所示的列表:
list=[
('2013-01-04', u'crid2557171372', 1),
('2013-01-04', u'crid9904536154', 719677),
('2013-01-04', u'crid7990924609', 577352),
('2013-01-04', u'crid7990924609', 399058),
('2013-01-04', u'crid9904536154', 385260),
('2013-01-04', u'crid2557171372', 78873)
]
Run Code Online (Sandbox Code Playgroud)
问题是第二个col具有dup id但不同的计数.我需要有一个列表来汇总计数,所以列表看起来像这样.在python中有一组cluase吗?
list=[
('2013-01-04', u'crid9904536154', 1104937),
('2013-01-04', u'crid7990924609', 976410),
('2013-01-04', u'crid2557171372', 78874)
]
Run Code Online (Sandbox Code Playgroud)
让我们为你的列表命名a而不是list(list在Python中是一个非常有用的函数,我们不想掩盖它):
import itertools as it
a = [('2013-01-04', u'crid2557171372', 1),
('2013-01-04', u'crid9904536154', 719677),
('2013-01-04', u'crid7990924609', 577352),
('2013-01-04', u'crid7990924609', 399058),
('2013-01-04', u'crid9904536154', 385260),
('2013-01-04', u'crid2557171372', 78873)]
b = []
for k,v in it.groupby(sorted(a, key=lambda x: x[:2]), key=lambda x: x[:2]):
b.append(k + (sum(x[2] for x in v),))
Run Code Online (Sandbox Code Playgroud)
b 就是现在:
[('2013-01-04', u'crid2557171372', 78874),
('2013-01-04', u'crid7990924609', 976410),
('2013-01-04', u'crid9904536154', 1104937)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |