【发布时间】:2015-01-26 12:32:18
【问题描述】:
我有一个嵌套字典,我希望能够删除其中的任意键。
字典可能如下所示:
D={'key1':{'key2':{'key3':'value3', 'key4':'value4'}, 'key5':'value5'}}
但它可以是任意大小。问题是密钥应该从“密钥列表”中获取,例如,如下所示:
key_list = ['key1', 'key2', 'key4']
key_list 可以是任意大小并且其中包含任何字典的键。
由于上述条件,我不能只使用:
del D['key1']['key2']['key4']
因为我事先无法知道key_list 将包含哪些键。
那么,根据key_list 的内容,删除字典D 中的相应项,通用代码会是什么样子?
【问题讨论】:
-
你确定你的
key_list的顺序,如果你想删除相应的项目它不会引发KeyError! -
No KeyError for me no.
-
两个问题可能会在我的脑海中具体化这个问题:1)每次都打算从字典中删除一个键/值对吗? 2) key_list 中键出现的顺序是否重要?我想第二个问题很像@Kasra 的问题。
-
在您的示例中,您是否打算将键视为 dict 中深度嵌套元素的路径,因此只删除叶子?或者您是否打算删除 key_list 中给出其键的每个元素?
-
一个额外的问题 - 不同的键可以在字典中多次出现(可以说是在不同的“级别”中)?例如 D = {'key1':{'key1':'value1', 'key2':'value2'}}
标签: python dictionary nested