- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一对长度相同的列表,第一个包含 int
值,第二个包含 float
值。我希望用另一对可能更短但长度相同的列表替换它们,其中第一个列表将仅包含唯一值,第二个列表将包含每个匹配值的总和。也就是说,如果新对中第一个列表的第 i 个元素是 x
,并且原始对中的第一个列表中出现了 x
的索引是 i_1,...,i_k
,则新对中第二个列表的第 i 个元素应包含索引 i_1,...,i_k< 中值的总和
在原始对的第二个列表中。
举个例子。
输入:
([1, 2, 2, 1, 1, 3], [0.1, 0.2, 0.3, 0.4, 0.5, 1.0])
我们的输出:
([1, 2, 3], [1.0, 0.5, 1.0])
我试图在这里做一些列表理解技巧但失败了。我可以为此编写一个愚蠢的循环函数,但我相信这里应该有更好的东西。
最佳答案
不是单线的,但由于您还没有发布您的解决方案,我会建议使用 collections.OrderedDict
的解决方案:
>>> from collections import OrderedDict
>>> a, b = ([1, 2, 2, 1, 1, 3], [0.1, 0.2, 0.3, 0.4, 0.5, 1.0])
>>> d = OrderedDict()
>>> for k, v in zip(a, b):
... d[k] = d.get(k, 0) + v
...
>>> d.keys(), d.values()
([1, 2, 3], [1.0, 0.5, 1.0])
当然,如果顺序无关紧要,那么最好使用 collections.defaultdict
:
>>> from collections import defaultdict
>>> a, b = ([1, 'foo', 'foo', 1, 1, 3], [0.1, 0.2, 0.3, 0.4, 0.5, 1.0])
>>> d = defaultdict(int)
>>> for k, v in zip(a, b):
d[k] += + v
...
>>> d.keys(), d.values()
([3, 1, 'foo'], [1.0, 1.0, 0.5])
关于python - 对具有相等值的列表求和和聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823689/
我使用 Pandas 作为数据库替代品,因为我有多个数据库( Oracle 、 SQL Server 等),并且我无法将一系列命令与 SQL 等效。 我在 DataFrame 中加载了一个包含一些列的
使用 dimensional-tf 时包,是否可以使用“普通”Num 实例(即 Int、Double、Integer),而无需使用一个单元? 例如,此代码不进行类型检查(在 ghci 中): {-#
我有很多这样的陈述: INSERT INTO app.organization (name, org_type) VALUES ($1, $2) 在我的代码中。我想捕获它,将其粘贴到
我有很多这样的陈述: INSERT INTO app.organization (name, org_type) VALUES ($1, $2) 在我的代码中。我想捕获它,将其粘贴到
我正在使我的应用与平板电脑兼容,并且我正在尝试了解实现此目的的最佳方式。 我有一个 GridView,每个图像下面都有图像和文本。目前每张图片的高度都设置为 120dp 而不是 wrap_conten
我对 MongoDB 非常陌生,并且使用 jupyter 笔记本从 mongodb 中提取数据。我正在尝试获取 MongoDB 中的前 100 个文档,并且我确实有一种仅获取 100 个文档的粗略方法
我的代码, class User(db.Model, UserMixin): uid = db.Column(db.Integer, primary_key=True) username =
我正在尝试在我的本地机器上启动我的 PostgreSQL 服务器。但是我收到一条错误消息: FATAL: could not create shared memory segment: Invali
我正在使用基于 C++ 的程序,但它有自己的语法。例如,这是我将变量 x 设置为等于 2 的方式: x() = 2; 我从外部文件中读入变量及其初始值。数据存储在两个 vector 中。 vector
我是一名优秀的程序员,十分优秀!