gpt4 book ai didi

python - 在 Python 中从字典中删除键/值对

转载 作者:行者123 更新时间:2023-11-28 21:43:43 25 4
gpt4 key购买 nike

我是 python 的初学者。

我正在尝试从该字典中删除所有“noone: 0”,因此它看起来与下面相同,但没有任何“noone: 0”:

G = {'a': {'b': 10, 'c': 8, 'd': 3, 'noone': 0, 'e': 3}, 'f': {'g': 7, 'c': 5, 'h': 5, 'i': 2, 'j': 4, 'noone': 0, 'l': 2}}

我搜索并找到了我应该实现它的所有方法,但找不到有效的方法。我试过这个没有用:

for i in G:
if str(G[i]) == 'noone':
G.pop('noone', None)

最佳答案

我相信这会如您所愿。

for i in G:
if 'noone' in G[i]:
G[i].pop('noone')

这里 (G) 确实是一本字典,但更具体地说,它是一本字典,其值也是字典。因此,当我们遍历 G 中的所有键时(for i in G),每个键对应的值(G[i])是一个字典。如果您尝试运行,您可以自己看到这一点:

for i in G:
print(G[i])

所以你真正想做的是从 G 中的每个字典中弹出。也就是说,对于每个 G[i],你想从那些“子”字典中删除“noone”,不是最主要的。


P.S.:如果你真的想利用python的便利,你甚至可以简单地写

for i in G:
G[i].pop('noone', None)

通过使用 second argument into pop ,您甚至不必首先检查“noone”是否是 G[i] 中的键,因为 pop 方法不会引发异常。 (如果你在没有第二个参数的情况下尝试这个双线,你会得到所有没有'noone'的子字典的错误)。

关于python - 在 Python 中从字典中删除键/值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41837454/

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