如何解决如何创建自定义嵌套字典
我有一个默认的字典,看起来像:
original=
{
'cat': [
18.919298,20.39386,14.010526,16.508772,15.34386
],'dog': [
24.716667,24.716667,21.563121,21.563121
],'wolf': [
15.761111,15.761111,15.761111
],'tiger': [
7.961111,7.055556,70.988889,35.527778
],'elephant': [
37.386364,28.289394,35.930303,35.930303
],'pythons': [
18.399561,18.399561,28.431798,19.839735,22.66557,20.986842,18.674232,18.248904
]
}
现在,我想执行一些操作,该操作返回一个列表,现在我希望我的最终字典看起来像
'cat': { 'original':[
18.919298,15.34386
],'result':[
1,2,3,]
},.
.
我正在尝试这样的事情:
modified_dict = {}
for key,value in original.items():
result = [1,3] # Assume that a function returns me the data here as dict
modified_dict[rrd]['original']=values
modified_dict[rrd]['result'] = result
我知道代码的最后一部分是不正确的,因此我需要帮助才能使该部分正常工作。有人可以请我帮忙解决一下我所缺少的内容,以获得如上所述的修改后的新字典。
解决方法
改为尝试dict comprehension
。
result = [1,2,3]
{k : {"original": v,"result": result} for k,v in original.items()}
{'cat': {'original': [18.919298,20.39386,14.010526,16.508772,15.34386],'result': [1,3]},'dog': {'original': [24.716667,24.716667,21.563121,21.563121],...
}
,
您可以就地修改字典:
for key in original:
original[key] = {'original': original[key],'result': ...}
或者您可以通过制作新字典来做到这一点:
modified = {}
for key,value in original.items():
modified[key] = {'original': value,'result': ...}
在两种情况下,都需要为每个值创建一个新的嵌套字典。
如果您具有返回结果的键和值的功能,则可以将后者写成一个理解:
modified = {key: {'original': value,'result': func(key,value)} for key,value in original.items()}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。