python - Python字典格式更改拆分键
问题描述
我怎么能从这种格式的字典中走出来
{'A.B': 7, 'C.D': 5, 'A.D': 34}
对此:
{'A': {'B':7, D:34} , 'C': {'D': 5} }
键“AB”的含义是我从 A 到 B,它的值意味着 7 次,所以我要做的是改变这种格式,以便我的字典键是我从哪里去,它的值是一个带有他的字典目的地(一个或多个)和每个目的地的时间。
我已经尝试了几件事,但现在事情还没有解决。
我曾尝试将 for 与新字典一起使用,但它会覆盖我的键。
解决方案
使用默认字典:
d = {'A.B': 7, 'C.D': 5, 'A.D': 34}
from collections import defaultdict
formatted_d = defaultdict(dict)
for k, v in d.items():
top_key, bottom_key = k.split('.')
formatted_d[top_key][bottom_key] = v
没有默认字典:
formatted_d = {}
for k, v in d.items():
top_key, bottom_key = k.split('.')
if top_key not in formatted_d:
formatted_d[top_key] = {}
formatted_d[top_key][bottom_key] = v
推荐阅读
- solidity - Solidity - 堆栈太深
- python - ValueError:无法将输入数组从形状(0,2)广播到形状(2,)
- ios - youtube 如何阻止浏览器在 iPhone 上休眠?
- python - 我的输入是 XML 格式,需要在 Python 中转换成列表结构?
- matlab - 注意能够在 MATLAB 中找到用于深度 Q 学习 (DQN) 的已保存代理的神经网络的训练权重
- popup - 仅带有 favicon 的弹出页面能完成什么?
- spring-boot - loadUserByUsername 不会覆盖 springboot 身份验证中的任何内容
- google-translate - 如何从谷歌翻译 api 获得罗马印地语?
- java - POJO 用于解析 HttpClient 的 HttpResponse 对象,其中包含正文中的表单编码数据
- r - R中的tesseract中的自定义.traineddata文件使用