我试图在Python中实现具有无限深度子类别的目录树,我有多个列表元素,我必须从这些元素中进行创建。在

让我详细解释一下,这是我的清单。在>mylists = [

>['home', 'desktop', 'mouse', 'wireless'],

>['home', 'desktop', 'mouse', 'wired'],

>['home', 'laptop', 'mouse'],

>['home', 'laptop', '13-inch'],

>]

我希望输出是:

^{pr2}$

我知道我应该使用递归函数来迭代列表,并使一些东西变魔术。在

为此,我分两步来完成这项任务:

1将这个嵌套列表转换成嵌套字典(只是为了保持层次结构)

2将嵌套dict转换为上面解释的所需格式。在

步骤1:以下是我将嵌套列表转换为嵌套dict的代码:>def make_rec_dict(dict):

> d = {}

> for path in dict:

> current_level = d

> for part in path:

> if part not in current_level:

> current_level[part] = {}

> current_level = current_level[part]

> #print part

> return d

>

>make_rec_dict(mylists)

>{'home': {'laptop': {'mouse': {}, '13-inch': {}}, 'desktop': {'mouse': {'wireless': {}, 'wired': {}}}}}

第2步:

以所需格式显示spaces = { 1 : '', 2 : '>>>>', 3 : '>>>>>>>>', 4 : '>>>>>>>>>>>>', 5 : '>>>>>>>>>>>>>>>>>>>>'}

def display_recusively(dictionary, level=0):

if type(dictionary) is dict:

values = [] # get all the values and parse each again

for key, value in dictionary.iteritems():

if value != '':

print spaces[level], key

values.append(value)

level = level + 1

return display_recusively(values, level)

elif value == '': # this is the last child

print spaces[level], key

elif type(dictionary) is list:

for d in dictionary:

return display_recusively(d, level)

else:

print dictionary

但该代码的缺点是,我无法获取子元素相对于父元素的链接。我的意思是鼠标和鼠标应该是不同的,上面代码的缺点是它脱离了循环。。在

因此,请向我建议或纠正我实现以下目标的更好方法:1.带深度级别的格式化类别树

2.构件应带有制作锚定标签的母材(如最后一段所述)

python 分类树_python中列表的分类树实现相关推荐

  1. python乘法函数_Python中列表与元组的乘法操作示例

    本文实例讲述了Python中列表与元组的乘法操作.分享给大家供大家参考,具体如下: 直接上code吧,还可以这么玩儿 列表乘法: li=[1,] li=li*3 print(li) out: [1, ...

  2. python list常用方法_Python中列表(List)的基本用法

    一.列表的创建 list((3, 5, 7, 9, 11)) list(range(1, 10, 2)) """ 字符串.集合.字典的键.字典的键:值对转列表 " ...

  3. python中turtle画树_python中turtle可以画树吗?怎么画?

    这几天给大家介绍的画图形的方法很多,小编就想着有没有难一点的可以挑战一下.经过一番搜集资料,还真的被小编找到了.当然代码会比较长,小伙伴们学习的时候要有耐心,不要出现手滑的现象,不然对着代码一点点找失 ...

  4. 硕士论文分类号(中图法分类号)

    论文分类号(中图法分类号查询)网址:http://www.ztflh.com/ 例如<基于SCA软件无线电研究和开发>的分类号是TN924.

  5. python决策树 多分类_Python中的决策树分类:您需要了解的一切

    python决策树 多分类 什么是决策树? (What is Decision Tree?) A decision tree is a decision support tool that uses ...

  6. python组合数据分类_Python 数据可视化:分类特征统计图

    上一课已经体验到了 Seaborn 相对 Matplotlib 的优势,本课将要介绍的是 Seaborn 对分类数据的统计,也是它的长项. 针对分类数据的统计图,可以使用 sns.catplot 绘制 ...

  7. python 分类算法_python机器学习之KNN分类算法

    本文为大家分享了python机器学习之KNN分类算法,供大家参考,具体内容如下 1.KNN分类算法 KNN分类算法(K-Nearest-Neighbors Classification),又叫K近邻算 ...

  8. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  9. python列表切片得到的是列表还是字符串_python中列表的切片问题 python arry怎么取列切片...

    python 列表切片赋值 对列表切片进行赋值,解释器处理时是直接将序列中的内容赋值过去的 ,还切片赋值,得到的与原变量无关,是两个不同的对象:直接赋值,引用的是同一个对象. 请看下例 切片赋值. a ...

  10. python中列表的运用_python中列表的应用

    标签: 本文主要介绍了:python中列表的主要应用和一些列表自带的一些函数 代码: #!/usr/bin/env python # author by lh # -*- coding:utf-8 - ...

最新文章

  1. 不要在递归中使用静态容器
  2. 关于0xFFFFFFFF和alpha,温故而知新
  3. WebSocket和Java
  4. Java程序性能优化16
  5. java报表查询_数据查询 | 快逸报表工具 java报表软件
  6. Camera Link相机接口
  7. Windows进行磁盘碎片化整理
  8. Theos-tweak工程
  9. IBM服务器无法启动怎么恢复
  10. SpringBoot整体开发的详细过程(待完结)
  11. php实训报告摘要部分怎么写,毕业论文的摘要部分怎么写(附摘要范文)
  12. Go按多组id数组出现次数,由多到少排序并去重,输出权重id数组
  13. Ubuntu18.04 实现串口通信
  14. C语言中的restrict限定符
  15. BBEdit—HTML文本编辑器
  16. Java项目:网上水果超市商城设计和实现(java+SSM+springboot+redis)
  17. 边沿检测与提取,轮廓跟踪
  18. iperf java_网络性能测试工具Iperf/Jperf
  19. 室内设计职业技能等级证书助力“十四五”技能人才培养
  20. libvirt虚拟化技术介绍

热门文章

  1. MongoDB 在windows shell环境下的基本操作和命令的使用示例(五)
  2. 【POJ 1113】Wall【凸包+一点思维】
  3. 企业微信oauth认证_企业微信开发之授权登录
  4. LeetCode-两数之和(Java) 记录下刷题的第一天以及近期迷茫感受
  5. lasted是什么意思_lasted是什么意思_lasted怎么读_lasted翻译_用法_发音_词组_同反义词_继续存在( last的过去式和过去分词 )-新东方在线英语词典...
  6. Oracle Database Documentation
  7. session与cookie的区别和用法
  8. Android——通讯录
  9. iOS通过CIFilter对图像进行滤镜处理
  10. Android 内存监测工具 DDMS -- Heap