连仕彤博客[Python练习] 将字典扁平化

要求

要求将字典source处理成target格式,如下图所示:

实现代码

source = {'a': {'b': 1, 'c': 2}, 'd': {'e': 3, 'f': {'g': 4}}}
target = {}
def fun(sdict,dictkey=''):
    for k,v in sdict.items():
        if isinstance(v,dict):
            fun(v,dictkey=dictkey + k + '.')
        else:
            target[dictkey + k ] = v
 
fun(source)
print(target)

知识点

1.isinstance():判断v的类型是不是字典,如果不是就直接写入新字典; 2.递归(函数循环) 3.嵌套函数

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老司机的技术博客

宝宝都能学会的python编程教程8:条件判断与循环

先公布上期编程练习的答案,没错,L是一个指向三个列表的二维元祖。 条件判断 实际的项目中条件判断可以说是使用最多的语法之一了,不管是最简单的判断还是负责的业务逻...

36050
来自专栏C/C++基础

C++中string成员函数length()与size()和strlen()的区别

上面的代码片段获取的字符串长度均是4,看不出什么区别,那么方法一和方法二有什么区别呢?请看如下代码:

12820
来自专栏javathings

解释一下 HashMap 的工作原理

HashMap 是基于散列表的数据结构。所谓散列表,它通过键值对的方式存储数据,把 key 通过散列算法计算出一个存储地址,将 value 放入这个地址中。散列...

49810
来自专栏debugeeker的专栏

《coredump问题原理探究》Linux x86版3.5节栈布局之-fomit-frame-pointer编译选项

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

8220
来自专栏JavaEdge

(六)-class文件结构1 什么是JVM的“无关性”?2 纵观Class文件结构

31080
来自专栏mathor

C++STL中set的使用策略(一)

14030
来自专栏程序员互动联盟

【答疑解惑第六讲】数组与指针区别在哪?

存在问题: 小伙伴都说指针和数组不好学,总是搞不太清楚?两者到底有啥区别? 解决方案: 很多初学者朋友总是对数组和指针模模糊糊,搞不清楚。对他们之间的联系与区...

354110
来自专栏编程思想之异常处理

Java编程思想之通过异常处理错误

1.     异常分为被检查的异常和运行时异常,被检查的异常在编译时被强制要求检查。异常被用来错误报告和错误恢复,但很大一部分都是用作错误报告的。

7810
来自专栏用户2442861的专栏

C++ STL源码实现以及分析之vector

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

47310
来自专栏康怀帅的专栏

PHP 数据类型

PHP 支持三大类 8 种数据类型。 官方文档:http://php.net/manual/zh/language.types.php 标量(4) 布尔 boo...

31240

扫码关注云+社区

领取腾讯云代金券