gpt4 book ai didi

python - python中的递归字典修改

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:29 24 4
gpt4 key购买 nike

翻这本字典最简单的方法是什么:

{'item':{'w':{'c':1, 'd':2}, 'x':120, 'y':240, 'z':{'a':100, 'b':200}}}

进入这个:

{'item':{'y':240, 'z':{'b':200}}}

假设您只需要变量 y 和 b,同时保持字典的结构?项目的大小或数量或字典的深度应该无关紧要,因为我正在使用的字典的深度可以是 2 到 5 层。

编辑:我为之前的类型道歉,并澄清一下,我得到了一个字符串数组(例如['y','b']),我需要在字典中找到它然后只保留'y'和 'b' 以及任何其他键,以维护原始字典的结构,在这种情况下,它将是 'z'

可以找到更好的例子here我需要芯片组型号、VRAM 和分辨率的地方。

关于评论,输入将是上面的链接作为起始字典以及 ['芯片组模型'、'vram'、'分辨率'] 的数组作为保留列表。它应该返回这个:

{'Graphics/Displays':{'NVIDIA GeForce 7300 GT':{'Chipset Model':'NVIDIA GeForce 7300 GT', 'Displays':{'Resolution':'1440 x 900 @ 75 Hz'}, 'VRAM (Total)':'256 Mb'}}

最佳答案

假设您要分配给 super 字典元素的字典是 foo,您可以这样做:

my_dictionary['keys']['to']['subdict']=foo

关于您的编辑——您需要消除除特定列表中的键之外的所有键——这个函数应该可以解决问题:

def drop_keys(recursive_dict,keep_list):
key_list=recursive_dict.keys()
for key in key_list:
if(type(recursive_dict[key]) is dict):
drop_keys(recursive_dict[key], keep_list)
elif(key not in keep_list):
del recursive_dict[key]

关于python - python中的递归字典修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750957/

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