需要一个允许重复值的双向映射,并返回给定键的值列表

2024-10-03 02:39:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一种数据结构,我认为这应该是一种普遍需要
我需要一个允许重复值的映射(最常见的是这样做,但请稍候。。说到点子上。。请参阅此示例

k1 -> v1
k2 -> v1
k3 -> v1
k4 -> v2
k5 -> v2

如果我知道了map.getByValue(v1),我应该准备好(k1,k2,k3)。否则,它的行为应该像一个“正常”地图。它应该有很高的性能,所以没有针对循环的建议。
另外,请注意,以下内容不适用于我

^{pr2}$

。。因为我不想出现这种情况(注意,k1在两个列表中)。。在

v1 -> (k1, k2, k3)
v2 -> (k4, k5, k1)

我不想用双映射法。我正在考虑一些方法来保持值的排序,这样getByValue(value)仍然可以执行。在


Tags: 示例数据结构map地图请参阅k2k1性能
1条回答
网友
1楼 · 发布于 2024-10-03 02:39:59

高性能意味着您需要某种索引来搜索密钥。没有双向工作的索引,所以实际上需要两个索引。因此,您必须使用两个多重映射,每个方向一个,以及一个将它们保持在一致状态的包装器。在

相关问题 更多 >