gpt4 book ai didi

python - 检查所有值是否作为键存在于字典中

转载 作者:太空狗 更新时间:2023-10-30 01:19:00 25 4
gpt4 key购买 nike

我有一个值列表和一本字典。我想确保列表中的每个值都作为字典中的键存在。目前我正在使用两组来确定字典中是否不存在任何值

unmapped = set(foo) - set(bar.keys())

有没有更像 pythonic 的方法来测试这个?感觉有点像黑客?

最佳答案

您的方法会奏效,但是,转换为 set 会产生开销。

另一个具有相同时间复杂度的解决方案是:

all(i in bar for i in foo)

这两个都有时间复杂度O(len(foo))

bar = {str(i): i for i in range(100000)}
foo = [str(i) for i in range(1, 10000, 2)]

%timeit all(i in bar for i in foo)
462 µs ± 14.8 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit set(foo) - set(bar)
14.6 ms ± 174 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

# The overhead is all the difference here:

foo = set(foo)
bar = set(bar)

%timeit foo - bar
213 µs ± 1.48 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

这里的开销有很大的不同,所以我会在这里选择all

关于python - 检查所有值是否作为键存在于字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724875/

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