【发布时间】:2018-07-20 16:32:07
【问题描述】:
我有一个 numpy 数组列表,如下所示:
list_list = [np.array([53, 5, 2, 5, 5, 2, 1, 5, 9]), np.array([6, 4, 1,2, 53, 23, 1, 4])]
以及上面每个数组的 ID 列表:
ID = [6, 2]
我怎样才能得到一个字典,对于list_list 中的每个唯一值,我可以得到一个包含它的 ID 列表?
例如,对于这个非常简单的例子,我想要这样的东西:
{53: [6, 2], 5: [6], 2: [6, 2], 1: [6, 2], etc}
我的实际 list_list 超过 1000 个列表,每个 numpy 数组包含大约 1000 万个值,因此解决方案的效率是关键。
我知道dict(zip(ID, list_list)) 会给我一个字典,对应一个包含所有值的 ID,但它不会给我一个对应于 ID 的值,这正是我想要的。
谢谢!
【问题讨论】:
-
53如何映射到[6, 2]而5映射到[6]?你如何确定这一点? -
@Code-Apprentice 对不起,应该更清楚。所以 53 是 list_list 中的唯一值,它同时出现在 ID 6 和 2 中。但是,作为唯一值的 list_list 5 只出现在第一个 np 数组中,它对应于 ID #6。像这样,对于 list_list 中的每个唯一值,我想查看它显示在哪个对应的 ID 中。
-
如果我理解正确,
list_list[i]中的所有值都对应于ID[i]。对吗? -
@Code-Apprentice 是的,这是正确的。
-
不应该
2: [6]是2: [6, 2],如果我没记错的话(因为2在两个子列表中)?
标签: python numpy dictionary