gpt4 book ai didi

python - 使用列表中的值过滤字典中的键、值

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:41 25 4
gpt4 key购买 nike

假设我有一个这样的字典:

d = {27: 32, 28: 41, 29: 29, 30: 29, 31: 67, 32: 65}

还有一个列表:

l = [27, 30, 31]

for n in l:
d2 = {k:v for k,v in d.items() if k in n}

为什么这是不允许的?我可以做什么?

最佳答案

以这种方式得到过滤后的字典就足够了:

d = {27: 32, 28: 41, 29: 29, 30: 29, 31: 67, 32: 65}
l = set([27, 30, 31])
d2 = {k:v for k,v in d.items() if k in l}

print(d2)

输出:

{27: 32, 30: 29, 31: 67}

表达式 ... if k in n 在你的列表理解中迭代 for n in l: 意味着你正在搜索数字中的数字键( number) - 就像我们在 27 中搜索 27,这在这种情况下毫无意义。
此外,set 对象在大序列的情况下更可取。

Membership testing with sets and dictionaries is much faster, O(1), than searching sequences, O(n)

关于python - 使用列表中的值过滤字典中的键、值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40643461/

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