首页 > 解决方案 > 有条件求和列表

问题描述

我有这样的清单:

[['a', '4'], ['b', '3'], ['d', '2'], ['a', '7'], ['c', '3.5'], ['a', '4'], ['d', '4'], ['b', '5'], ['eee', '4']]

我想对 a、b 等的值求和。所以我想要这样的东西:

a 15
b 8
c 3.5
d 6
eee 4

另一个问题是我的数字列的类型是字符串,所以在对值求和之前,我必须将类型更改为浮点数。我不能使用熊猫:(

标签: pythonlistsumconditional-statements

解决方案


您可以使用 acollections.defaultdict来保存一些样板代码:

from collections import defaultdict

d = defaultdict(float)

for k, v in data:
    d[k] += float(v)

for k in d:
    print(k, d[k])

a 15.0
b 8.0
d 6.0
c 3.5
eee 4.0

推荐阅读