gpt4 book ai didi

python - 从 Python 列表列表到整数索引的逆映射

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:50 24 4
gpt4 key购买 nike

我有一个 Python 列表,它表示找到特定产品的最佳商店,就像这样(我们只返回下面的列表):

Index: Product     0  1  2  3  4  5  6  7  8  9
Value: Store [5, 6, 1, 7, 3, 4, 2, 0, 8, 9]

现在,每个产品都有一个唯一的商店,所以我可以将其转换为一个列表列表,为商店和每个商店中要购买的产品编制索引:

Index: Store               0    1    2    3    4    5    6    7    8    9
Value: List of Products [[7], [2], [6], [4], [5], [0], [1], [3], [8], [9]]

使用这个函数:

def convertList(l):
return [[i] for (i, j) in sorted(list(enumerate(l)), key=lambda e:e[1])]

但现在我不知道如何在一个商店中找到多种产品的情况下将它们组合起来(在这种情况下,产品 3 和 9 在商店 7 最好,并且什么都不应该在商店购买)商店 9) :

Index: Product     0  1  2  3  4  5  6  7  8  9
Value: Store [5, 6, 1, 7, 3, 4, 2, 0, 8, 7]

输出应该是这样的:

Index: Store               0    1    2    3    4    5    6    7       8    9
Value: List of Products [[7], [2], [6], [4], [5], [0], [1], [3, 9], [8], []]

我知道我卡在了 convertList 中的 sorted 函数上,但我不确定如何继续。我正在练习列表理解,所以如果可行的话,我想使用一个。有什么想法吗?

最佳答案

我认为在不使用列表理解的情况下这将更具可读性。列表推导适用于一对一映射步骤,但事实并非如此。

最好遍历您的输入并将每个项目添加到输出数组的正确元素:

# assuming your input is in product_to_store
store_to_product = [[] for i in range(10)]
for product, store in enumerate(product_to_store):
store_to_product[store].append(product)

关于python - 从 Python 列表列表到整数索引的逆映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833330/

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