字典算法实现及操作 --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 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
python调用摄像头显示图像的实例
Aug 03 Python
django如何连接已存在数据的数据库
Aug 14 Python
Python 经典面试题 21 道【不可错过】
Sep 21 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
Python列表的索引与切片
Apr 07 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 smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP中的事务使用实例
2015/05/26 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
react开发教程之React 组件之间的通信方式
2017/08/12 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
如何使用python进行pdf文件分割
2019/11/11 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
C语言基础笔试题
2013/04/27 面试题
简述数组与指针的区别
2014/01/02 面试题
护士实习自我鉴定
2013/10/22 职场文书
公司综合部的成员自我评价分享
2013/11/05 职场文书
工作自我评价分享
2013/12/01 职场文书
毕业生自荐书
2013/12/18 职场文书
大学生社团活动总结
2014/04/26 职场文书
nginx配置虚拟主机的详细步骤
2021/07/21 Servers