首页 > 解决方案 > Python字典格式更改拆分键

问题描述

我怎么能从这种格式的字典中走出来

{'A.B': 7, 'C.D': 5, 'A.D': 34}

对此:

{'A': {'B':7, D:34} , 'C': {'D': 5} }

键“AB”的含义是我从 A 到 B,它的值意味着 7 次,所以我要做的是改变这种格式,以便我的字典键是我从哪里去,它的值是一个带有他的字典目的地(一个或多个)和每个目的地的时间。

我已经尝试了几件事,但现在事情还没有解决。

我曾尝试将 for 与新字典一起使用,但它会覆盖我的键。

标签: pythondictionaryformat

解决方案


使用默认字典:

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

推荐阅读