gpt4 book ai didi

python - 如何有效地在 defaultdict 中进行反向查找?

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

在发布这个问题之前我做了一些搜索,似乎有几种不同的方法可以完成这个。

但是目前(使用 Python 3)根据 defaultdict 中的特定值搜索键的最有效方法是什么,它看起来(类似于)如下所示:

defaultdict(list,
{'a': [[2, 3], [1, 2]],
'b': [[5, 6]],
'w': [[]],
'x': [[9]],
'z': [[5, 6]]})

我想找到所有值为 6 的键。一个解决方案是编写一个嵌套的 for 循环,迭代键,defaultdict 的值,但我确信有一种更好的方法来实现这一目标。

最佳答案

您可以使用 itertools 模块中的 chain.from_iterable,如下例所示:

from itertools import chain 

a = defaultdict(list,
{'a': [[2, 3], [1, 2]],
'b': [[5, 6]],
'w': [[]],
'x': [[9]],
'z': [[5, 6]]})

keys = [k for k, v in a.items() if 6 in chain.from_iterable(v)]
print(keys)

或者,以更紧凑的方式,您可以定义一个函数来查找 defaultdict 的值:

def get_keys(a, key=6):
return [k for k, v in a.items() if key in chain.from_iterable(v)]

keys = get_keys(a)
print(keys)

输出:

['b', 'z']

关于python - 如何有效地在 defaultdict 中进行反向查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532374/

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