字典算法实现及操作 --python(实用)


Posted in Python onMarch 31, 2021

字典算法实现 --python

我在做项目的处理工作时,因为项目数据的需要,我想对字典的每一个最底层的值进行操作,得到所有底层值得路径和值并输出,于是就写了这个算法。

代码及功能:

def print_k(area, i=0, a='', key=''):
    if key != '':
        a = a + key + ','
    for k in area:
        if isinstance(area[k], dict):
            print_k(area[k], i+1, a=a, key=k)
        else:
            for j in (a + k).split(','):
                print(j, end='--',)
            print('-------', area[k])

这个是一个嵌套函数,我们传入一个字典,它会遍历输出所有的底层值
比如我们先读取一个json文件,并且转换为dict,然后传入这个函数。
字典算法实现及操作 --python(实用)
读取文件 & 打印

import json
f1 = open('json_data/empty1.json')
file = json.load(f1)
print_k(file)

字典算法实现及操作 --python(实用)

格外操作:

我们可以通过修改print()函数得输出流,将输出结果写到文件里边,下面来示例一下。
print函数有个参数为file ,通过修改它就可以实现上功能

def print_k(area, i=0, a='', key=''):
    if key != '':
        a = a + key + ','
    for k in area:
        if isinstance(area[k], dict):
            print_k(area[k], i+1, a=a, key=k)
        else:
            for j in (a + k).split(','):
                print(j, end='--', file=f)
            print('-------', area[k], file=f)
dicts = {"a": "1层1", 'j': {"a": "2层1", "b": "2层2"}, "b": "一层2", "g": "一层3", "o": "一层4",
             '1': {"a": "二层", "b": "2c", "g": "2c"}}
    with open('Txt/test3.txt', 'w') as f:
        print_k(dicts)

可以看到我们进行了输出重定向。我们看到test3.txt本来是空的
字典算法实现及操作 --python(实用)
在运行了代码之后
字典算法实现及操作 --python(实用)
字典的值和路劲被逐行写进来了,规则还可以自己修改,非常方便。

希望大家多多交流,共同进步!

Python 相关文章推荐
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
谈一谈基于python的面向对象编程基础
May 21 Python
Python udp网络程序实现发送、接收数据功能示例
Dec 09 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
Pygame框架实现飞机大战
Aug 07 Python
使用Python绘制台风轨迹图的示例代码
Sep 21 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 Python
详解用Python把PDF转为Word方法总结
Apr 27 Python
如何利用python和DOS获取wifi密码
python爬虫selenium模块详解
Mar 30 #Python
python将图片转为矢量图的方法步骤
Mar 30 #Python
一文搞懂如何实现Go 超时控制
golang中的空接口使用详解
Mar 30 #Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 #Python
Python离线安装openpyxl模块的步骤
You might like
也谈php网站在线人数统计
2008/04/09 PHP
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
php的常量和变量实例详解
2017/06/27 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
js中的this的指向问题详解
2019/08/29 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Python中if __name__ == "__main__"详细解释
2014/10/21 Python
python requests爬取高德地图数据的实例
2018/11/10 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
2014年人事行政工作总结
2014/12/03 职场文书
安阳殷墟导游词
2015/02/10 职场文书
免职通知
2015/04/23 职场文书
详解python的内存分配机制
2021/05/10 Python
详解MySQL中的pid与socket
2021/06/15 MySQL
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang