如何基于值在列表中合并元组?

2024-06-23 02:39:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元组列表:(timestamp,someOtherValue)。我想用这样的元组构建一个新的列表:(timestamp,这个timestamp的所有someOtherValue的总和)。我试着找出一些理解列表的方法,但我被卡住了。在Python中,有没有一种聪明的方法可以做到这一点


Tags: 方法列表timestamp元组总和someothervalue
1条回答
网友
1楼 · 发布于 2024-06-23 02:39:48
l = [("timestamp1", 1),("timestamp1", 2),("timestamp1", 1),("timestamp2", 2)]
d = {}
for ts, val in l:
    d.setdefault(ts,0)
    d[ts] += val
print d.items()
[('timestamp2', 2), ('timestamp1', 4)]

或者使用defaultdict

from collections import defaultdict
l = [("timestamp1", 1),("timestamp1", 2),("timestamp1", 1),("timestamp2", 2)]
d = defaultdict(int)
for ts, val in l:
    d[ts] += val
print (d.items())
[('timestamp2', 2), ('timestamp1', 4)]

相关问题 更多 >