为了账号安全,请及时绑定邮箱和手机立即绑定

扁平嵌套字典,压缩键

扁平嵌套字典,压缩键

弑天下 2019-07-13 09:57:13
扁平嵌套字典,压缩键假设您有一本字典,如下所示:{'a': 1,  'c': {'a': 2,        'b': {'x': 5,              'y' : 10}},  'd': [1, 2, 3]}你会如何把它压平成这样的东西:{'a': 1,  'c_a': 2,  'c_b_x': 5,  'c_b_y': 10,  'd': [1, 2, 3]}
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

基本上,就像您平平嵌套列表一样,您只需做额外的工作,按key/value迭代dict,为新字典创建新键,并在最后一步创建字典。

import collectionsdef flatten(d, parent_key='', sep='_'):
    items = []
    for k, v in d.items():
        new_key = parent_key + sep + k if parent_key else k        if isinstance(v, collections.MutableMapping):
            items.extend(flatten(v, new_key, sep=sep).items())
        else:
            items.append((new_key, v))
    return dict(items)>>> flatten({'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]})
    {'a': 1, 'c_a': 2, 'c_b_x': 5, 'd': [1, 2, 3], 'c_b_y': 10}


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 511 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信