从 Python 字典中选择键:值对

uhu*_*now 6 python dictionary

我有一个 Python 字典,如下所示:

a = {"a":1,"b":2,"c":3,"f":4,"d":5}
Run Code Online (Sandbox Code Playgroud)

我有一个如下列表:

b= ["b","c"]
Run Code Online (Sandbox Code Playgroud)

我想要做的是从字典 a 中选择键:值对,键在 b 中。所以输出应该是一个字典,如:

out = {"b":2,"c":3}
Run Code Online (Sandbox Code Playgroud)

我可以简单地创建另一个字典并使用 key:value 对迭代更新它,但我有 RAM 问题并且字典 a 非常大。b 包括几点,所以我认为从 a 中弹出是行不通的。我能做些什么来解决这个问题?

编辑:Out 实际上是对 a 的更新。所以我将更新 a 作为出来。

谢谢 :)

Chr*_*ler 7

如果你真的想用列表中的键创建一个新字典,那么你可以使用字典理解。

a = {"a":1,"b":2,"c":3,"f":4,"d":5}
b = ["b", "c"]

out = {x: a[x] for x in b}
Run Code Online (Sandbox Code Playgroud)

这将通过提高故障KeyError如果任何元素b都没有实际的密钥a


har*_*968 4

如果修改现有字典没有任何问题,请尝试以下操作:

out = {}
for key in b:
        out[key] = a.pop(key)
Run Code Online (Sandbox Code Playgroud)

不会占用任何额外的空间,因为我们正在将所需的值从旧字典转移到新字典,并且也将解决选择性弹出缓慢的问题(因为我们不会遍历所有的值,而只遍历选择性的值)必需的)。