python - Python - 根据内部列表的第一个元素对列表中的元素求和
问题描述
我有一个清单
[[0.5, 2], [0.5, 5], [2, 3], [2, 6], [2, 0.6], [7, 1]]
我需要将每个子列表中的第二个元素相加得到唯一的第一个元素的输出。在这种情况下,它是:
[[0.5, 7], [2, 9.6], [7, 1]]
和[0.5, 7]
的第二个元素在哪里求和。[0.5, 2]
[0.5, 5]
对于长度为 1,000 的说列表,最有效的方法是什么。
解决方案
累积 a defaultdict
:
>>> from collections import defaultdict
>>> data = defaultdict(int)
>>> L = [[0.5, 2], [0.5, 5], [2, 3], [2, 6], [2, 0.6], [7, 1]]
>>> for k, v in L:
... data[k] += v
...
>>> [[k,v] for (k,v) in data.items()]
[[0.5, 7], [2, 9.6], [7, 1]]
请注意,2 的值通过加法自动“提升”为浮点数,即使这是 int 的默认字典。这是为了匹配问题中发布的所需输出,但我认为您应该考虑使用同质输出类型,而不是 int 和 float 的混合。
推荐阅读
- python-3.x - 'pyapi.eval_loader' 未定义在:pyapi.eval_loader(0x7f34f01f2c60:ptr, "{_emit.emit( { 'event_date': '2019-10-10', 'status': 1})};":str);
- php - 带有 Laravel 6 的 PhpRedis - 使用 Forge 的别名 colission
- c# - VB.NET/C# Word Interop 添加图片(DB 中的二进制文件)
- reactjs - 在 jest/enzyme 中测试音频标签原生事件处理程序和方法
- javascript - 从长度为 6 的数组中返回 3 个组合的所有组合的算法,而数字不会出现在同一组数字中 - Javascript
- javascript - 字符串变量在 Golang 模板中总是显示为空
- spring-boot - 通过创建 jar 文件使用 JMeter 进行 Spring Boot 应用程序负载测试
- angular - 来自空文件数组的 RxJS 中的冷可观察
- visual-studio-code - Salesforce DX:具有多个包目录的单个项目与多个项目
- python - 如果我不提供任何静态内容,我是否需要 Nginx 和 Gunicorn?