python代码的层次结构图_Python:父子层次结构的组合
你看过那篇精彩的文章了吗?真正理解python中的模式是必不可少的。您的问题可以看作是一个图问题-查找关系基本上就是查找从子节点到父节点的所有路径。在
由于可能存在任意数量的嵌套(child->;parent1->;parent2…),因此需要递归解决方案来查找所有路径。在您的代码中,有2个for循环,这最多只会产生3级路径。在
下面的代码是根据上面的链接修改的,以解决您的问题。函数find_all_paths需要一个图形作为输入。在
让我们从文件创建图形:graph = {} # Graph is a dictionary to hold our child-parent relationships.
with open('testing.csv','r') as f:
for row in f:
child, parent = row.split(',')
graph.setdefault(parent, []).append(child)
print graph
对于您的样本,应该打印:
^{pr2}$
以下代码直接取自本文:def find_all_paths(graph, start, end, path=[]):
path = path + [start]
if start == end:
return [path]
if not graph.has_key(start):
return []
paths = []
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph, node, end, path)
for newpath in newpaths:
paths.append(newpath)
return paths
for path in find_all_paths(graph, 'D', 'A'):
print '|'.join(path)
输出:D|B|A
D|C|A
D|C|B|A
python代码的层次结构图_Python:父子层次结构的组合相关推荐
- python用缩进来标明代码的层次关系_Python第二弹python基础
标签: python基础 1.语句和语法 #号:表示之后的字符串为python注释 \n换行是标准的分隔符 \(反斜线)继续上一行 ;(分号)将两个语句链接在一行中,允许将多个语句写在同一行上,语句之 ...
- python代码缩进和冒号_Python缩进和冒号详解
对于Python而言代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin...end分隔代码块,而是采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量是可变的,但是所有代码块 ...
- 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码
用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...
- 图书管理系统python代码课程设计报告_python代码实现图书管理系统
本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 功能简介 添加图书时,图书ID不能重复,图书名可重复 删除,查询,修改功能,输入图书名之后提供所 ...
- python代码的层次结构_Python:父子层次结构的组合
您是否看过this篇精彩的论文?真正了解python模式是必读的.您的问题可以认为是图形问题-找到关系基本上就是找到从子节点到父节点的所有路径. 由于可能存在任意数量的嵌套(child-> pa ...
- python遍历任意层次字典_Python递归中 return 代码陷阱
1 #获取字典中的objkey对应的值,适用于字典嵌套 2 #targetDict:要查找的字典;serchKey:要查找的目标key 3 #ret:递归过程中,向外部(上层)传送 return值.被 ...
- python 代码格式规范脚本_Python编码规范
Python自动化测试代码编码规范 一.适用范围: 本规则基础为Python标准PEP8,在此基础上加了我司测试部编码规范,适用于测试部所有Python脚本编写是采用的规则. 二.编码: 所有的 Py ...
- python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)
前段时间袭击中国的超强台风"利奇马",以及这两天袭击美国的五级飓风"多利安",让我们感受到了大自然的力量.所以,今天分享一个简单的Python实例,也算是延续前 ...
- python代码该怎么简化_Python开发简化代码的六大技巧
Python开发代码简化除了采用规范化的编程规则之外,代码编写的逻辑性和对内置规则的掌握也对其有一定的影响,以下是Python3支持的用法,合理的利用可以极大的简化代码的书写复杂度. 1. 列表推导式 ...
最新文章
- latin1_swedish_ci gbk_chinese_ci
- dockerfile centos+jdk+时区设置
- C++封装、构造函数、析构函数
- !--[if IE]….![endif]-- (!--[if !IE]||![endif]--)的用法
- Java多线程(1)
- Android 系统(200)---Android build.prop参数详解
- Excel工作表丨使用Excel表格直接添加条码/二维码
- 关于如何取消萤石云视频加密
- 非QQ会员如何克隆好友
- gromacs ngmx_GROMACS教程
- android数据库工具 SQLiteSpy下载 sharePlus.Sqlite下载 DB.Browser.for.SQLite下载
- 虚拟服务器共享文件夹端口,如何查看共享文件夹端口
- Oracle AS opmnctl.exe 启动问题
- 零基础学鸿蒙编程-UI控件_DatePicker
- 互换性与测量技术基础复习题及答案
- 数据库中候选键的确定
- 系统级编程语言性能大PK的笑话-Go语言
- 鸿蒙os2.0基于安卓,外媒实测总结,目前华为鸿蒙OS 2.0依旧是基于安卓框架
- 阿里云如何提交工单呼叫人工帮助技术支持的方法
- 2009年诺基亚中国开发伙伴峰会召开
热门文章
- java. int 高低位读取写,数字高位和低位,数据高低位
- 上海交大PMP——职场妈妈的学习干货分享
- 【SPH模型入门】很适合于新手的一篇文章
- C语言实现幅值减小的正弦波,实现PMSM电机正弦电压控制的理想低成本解决方案...
- Google发布了Kata操作系统
- jeb 内存溢出解决方案
- NeatUpload 网络上传大文件的web.config配置问题
- 北京的春天——柳絮和沙尘在风中飞扬
- sqlserver2008 服务 远程过程调用失败
- 什么是mysql时间戳_什么是mysql 的时间戳