python - 有条件求和列表
问题描述
我有这样的清单:
[['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
另一个问题是我的数字列的类型是字符串,所以在对值求和之前,我必须将类型更改为浮点数。我不能使用熊猫:(
解决方案
您可以使用 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
推荐阅读
- javascript - Express Docker 容器在本地工作但未部署
- javascript - 使用 JavaScript 调用堆栈和 .map 文件,我可以找出我在 TypeScript 应用程序中的位置吗?
- c++ - C++:以下代码是否会导致悬空引用?
- c# - 在gridview中使用动态列表在动态下拉列表中保留所选选项的问题
- sql - SQL UNION 多列合为一
- python - 如何在子图中删除一个 xticks(seaborn FacetGrid),同时仍然在另一个中设置顺序?
- python - 删除多索引 df 中的重复项,中间有“n”个空格
- testing - CircleCI 预期的“jobRef”
- javascript - 使控件在 JavaScript 中可见,但在网页上不可见
- javascript - 设置 window.location.href 是否应该导致“旧”页面停止运行 JavaScript?