gpt4 book ai didi

python - 获取字典映射值到引用 ID

转载 作者:行者123 更新时间:2023-11-30 22:11:20 24 4
gpt4 key购买 nike

我有一个 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] 等}

我的实际 list_list 长度超过 1000 个列表,每个 numpy 数组包含大约 1000 万个值,因此解决方案的效率是关键。

我知道 dict(zip(ID, list_list)) 会给我一个对应于 ID 及其所有值的字典,但它不会给我对应于 ID 的值,这这就是我想要的。

谢谢!

最佳答案

解决此类问题的最佳方法是将其分解为更小的步骤。如果合适的话,用英语和伪 python 的组合来描述这些内容。您似乎有正确的想法来开始使用 zip(ID, list_list)。正如我们在评论中讨论的那样,这将创建两个列表之间的关联。

那么接下来怎么办?好吧,我们想要构建一个字典,以 list_list 中的值作为键。为此,我们需要迭代 zip() 返回的列表:

for id, list in zip(ID, list_list):
pass

然后我们需要迭代list的元素来确定字典的键:

for id, list in zip(ID, list_list):
for x in list:
pass

现在我们需要一个空字典来添加内容:

d = {}
for id, list in zip(ID, list_list):
for x in list:
pass

接下来,我们需要获取字典的列表(如果存在)。如果它不存在,我们可以使用一个空列表来代替。然后将id追加到列表中并将其放入字典中:

d = {}
for id, list in zip(ID, list_list):
for x in list:
l = d.get(x, [])
l.append(id)
d[x] = l

请注意我如何用文字描述每一步要做什么,然后将其翻译成 Python。像这样将问题分解为小步骤是培养程序员技能的关键部分。

关于python - 获取字典映射值到引用 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51446912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com