通过值列表获取键

我有一本字典和一个值列表,例如:

dictionary = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

liste = [2, 3]

我想:

result = ['b', 'c']

如果我有一本非常大的字典,那么最好的方法是什么?

键具有唯一值。

回答

这里的想法是为高效查找创建一个 reverse_dict ,否则复杂度可以是 O(mn),m 键数,n 列表长度。值可以是重复的,因此保留键的列表也很重要。

result = []
reverse_dict = collections.defaultdict(list)
for key, value in dictionary.items():
    reverse_dict[value].append(key) 
for v in liste:
    result.extend(reverse_dict[v])


以上是通过值列表获取键的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>