字典算法实现及操作 --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 相关文章推荐
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
python数据处理实战(必看篇)
Jun 11 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python中join函数简单代码示例
Jan 09 Python
Python 多线程其他属性以及继承Thread类详解
Aug 28 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
python实现按日期归档文件
Jan 30 Python
python解析json数据
Apr 29 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操作数组相关函数
2011/02/03 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
PHP加密解密函数详解
2015/10/28 PHP
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
jQuery移动web开发之页面跳转和加载外部页面的实现
2015/12/04 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
vue分类筛选filter方法简单实例
2017/03/30 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
JS判断数组那点事
2017/10/10 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
[01:54]胎教DOTA2 准妈妈玩家现身中国区预选赛
2016/06/26 DOTA
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
Django学习之文件上传与下载
2019/10/06 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
实习求职信
2013/12/01 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
森林防火宣传标语
2014/06/27 职场文书
学习保证书
2015/01/17 职场文书
销售经理岗位职责
2015/01/31 职场文书
师德承诺书2015
2015/04/28 职场文书