你看过那篇精彩的文章了吗?真正理解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:父子层次结构的组合相关推荐

  1. python用缩进来标明代码的层次关系_Python第二弹python基础

    标签: python基础 1.语句和语法 #号:表示之后的字符串为python注释 \n换行是标准的分隔符 \(反斜线)继续上一行 ;(分号)将两个语句链接在一行中,允许将多个语句写在同一行上,语句之 ...

  2. python代码缩进和冒号_Python缩进和冒号详解

    对于Python而言代码缩进是一种语法,Python没有像其他语言一样采用{}或者begin...end分隔代码块,而是采用代码缩进和冒号来区分代码之间的层次. 缩进的空白数量是可变的,但是所有代码块 ...

  3. 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码

    用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...

  4. 图书管理系统python代码课程设计报告_python代码实现图书管理系统

    本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 功能简介 添加图书时,图书ID不能重复,图书名可重复 删除,查询,修改功能,输入图书名之后提供所 ...

  5. python代码的层次结构_Python:父子层次结构的组合

    您是否看过this篇精彩的论文?真正了解python模式是必读的.您的问题可以认为是图形问题-找到关系基本上就是找到从子节点到父节点的所有路径. 由于可能存在任意数量的嵌套(child-> pa ...

  6. python遍历任意层次字典_Python递归中 return 代码陷阱

    1 #获取字典中的objkey对应的值,适用于字典嵌套 2 #targetDict:要查找的字典;serchKey:要查找的目标key 3 #ret:递归过程中,向外部(上层)传送 return值.被 ...

  7. python 代码格式规范脚本_Python编码规范

    Python自动化测试代码编码规范 一.适用范围: 本规则基础为Python标准PEP8,在此基础上加了我司测试部编码规范,适用于测试部所有Python脚本编写是采用的规则. 二.编码: 所有的 Py ...

  8. python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)

    前段时间袭击中国的超强台风"利奇马",以及这两天袭击美国的五级飓风"多利安",让我们感受到了大自然的力量.所以,今天分享一个简单的Python实例,也算是延续前 ...

  9. python代码该怎么简化_Python开发简化代码的六大技巧

    Python开发代码简化除了采用规范化的编程规则之外,代码编写的逻辑性和对内置规则的掌握也对其有一定的影响,以下是Python3支持的用法,合理的利用可以极大的简化代码的书写复杂度. 1. 列表推导式 ...

最新文章

  1. latin1_swedish_ci gbk_chinese_ci
  2. dockerfile centos+jdk+时区设置
  3. C++封装、构造函数、析构函数
  4. !--[if IE]….![endif]-- (!--[if !IE]||![endif]--)的用法
  5. Java多线程(1)
  6. Android 系统(200)---Android build.prop参数详解
  7. Excel工作表丨使用Excel表格直接添加条码/二维码
  8. 关于如何取消萤石云视频加密
  9. 非QQ会员如何克隆好友
  10. gromacs ngmx_GROMACS教程
  11. android数据库工具 SQLiteSpy下载 sharePlus.Sqlite下载 DB.Browser.for.SQLite下载
  12. 虚拟服务器共享文件夹端口,如何查看共享文件夹端口
  13. Oracle AS opmnctl.exe 启动问题
  14. 零基础学鸿蒙编程-UI控件_DatePicker
  15. 互换性与测量技术基础复习题及答案
  16. 数据库中候选键的确定
  17. 系统级编程语言性能大PK的笑话-Go语言
  18. 鸿蒙os2.0基于安卓,外媒实测总结,目前华为鸿蒙OS 2.0依旧是基于安卓框架
  19. 阿里云如何提交工单呼叫人工帮助技术支持的方法
  20. 2009年诺基亚中国开发伙伴峰会召开

热门文章

  1. java. int 高低位读取写,数字高位和低位,数据高低位
  2. 上海交大PMP——职场妈妈的学习干货分享
  3. 【SPH模型入门】很适合于新手的一篇文章
  4. C语言实现幅值减小的正弦波,实现PMSM电机正弦电压控制的理想低成本解决方案...
  5. Google发布了Kata操作系统
  6. jeb 内存溢出解决方案
  7. NeatUpload 网络上传大文件的web.config配置问题
  8. 北京的春天——柳絮和沙尘在风中飞扬
  9. sqlserver2008 服务 远程过程调用失败
  10. 什么是mysql时间戳_什么是mysql 的时间戳