>>> L = [('2015-11-01', 'id123', 'impressions', '8'), ('2015-11-01', 'id123',
... 'clicks', '4'), ('2015-11-01', 'id456', 'impressions', '14'),
... ('2015-11-01', 'id456', 'clicks', '9')]
>>> from collections import defaultdict
>>> D = defaultdict(list)
>>> for a, b, c, d in L:
... D[a, b].append(d)
...
>>> [k + tuple(D[k]) for k in D]
[('2015-11-01', 'id456', '14', '9'), ('2015-11-01', 'id123', '8', '4')]
在這種情況下是展示和點擊次數不是在一個一致的順序
>>> L = [('2015-11-01', 'id123', 'impressions', '8'), ('2015-11-01', 'id123', 'clicks', '4'), ('2015-11-01', 'id456', 'clicks', '9'), ('2015-11-01', 'id456', 'impressions', '14')]
>>> from collections import defaultdict
>>> D = defaultdict(lambda: [None, None])
>>> for a, b, c, d in L:
... D[a, b][c == 'clicks'] = d
...
>>> [k + tuple(D[k]) for k in D]
[('2015-11-01', 'id456', '14', '9'), ('2015-11-01', 'id123', '8', '4')]
我不能明白的結果,可你把在其他的話呢? – RafaelC
結果列表需要遵循「字段」結構。符合'日期'和'身份證'。 「展示次數」和「點擊次數」這幾個字詞是按順序排列的,因此可以認爲「8」是「展示次數」,「4」是點擊次數。 – PieCharmed