字典算法实现及操作 --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连接DB2数据库
Aug 27 Python
sublime text 3配置使用python操作方法
Jun 11 Python
dataframe设置两个条件取值的实例
Apr 12 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
Django Model中字段(field)的各种选项说明
May 19 Python
Python devel安装失败问题解决方案
Jun 09 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
终于搞懂了Keras中multiloss的对应关系介绍
Jun 22 Python
Pytorch上下采样函数--interpolate用法
Jul 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加MYSQL服务器
2006/10/09 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
js下关于onmouseout、事件冒泡的问题经验小结
2010/12/09 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
Vue中封装input组件的实例详解
2017/10/17 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
vue-lazyload使用总结(推荐)
2018/11/01 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
Python unittest模块用法实例分析
2018/05/25 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
政府绩效管理实施方案
2014/05/04 职场文书
绿色环保演讲稿
2014/05/10 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL