一行python实现树形结构
来源:互联网 发布:windows程序设计pdf 编辑:程序博客网 时间:2024/05/17 03:48
定义
使用内置的defaultdict 我们可以很容易的定义一个树形数据结构
def tree(): return defaultdict(tree)
example:
json风格
users = tree()users['harold']['username'] = 'bell'users['handler']['username'] = 'master'
我们可以使用print(json.dumps(users))以json的形式输出,于是我们看到
{'harold': {'username': 'bell'}, 'handler': {'username': 'master'}}
不需要赋值
taxonomy= tree()taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Felidae']['Felis']['cat']taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Felidae']['Panthera']['lion']taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Canidae']['Canis']['dog']taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Canidae']['Canis']['coyote']taxonomy['Plantae']['Solanales']['Solanaceae']['Solanum']['tomato']taxonomy['Plantae']['Solanales']['Solanaceae']['Solanum']['potato']taxonomy['Plantae']['Solanales']['Convolvulaceae']['Ipomoea']['sweet potato']
这时我们需要将他们转换成为标准的字典
def dicts(t): return {k: dicts(t[k]) for k in t}
我们用pprint(dicts(taxonomy))来输出结构
迭代
这颗树可以很欢乐的被迭代处理,同样因为只要简单的引用一个接口它就会出现
举例来说,假设我们想要解析一个新动物的列表,将他们加入我们上面的taxonomy, 我们只需要调用这样一个函数
add(taxonomy, 'Animalia,Chordata,Mammalia,Cetacea,Balaenopteridae,Balaenoptera,blue whale'.split(','))
我们可以简单的实现它
def add(t, keys): for key in keys: t = t[key]
0 0
- 一行python实现树形结构
- Python树结构之一行代码实现
- python 树形结构
- 树形结构的实现
- 树形结构的实现
- ajax实现树形结构
- JSP实现树形结构
- J2ME树形结构实现
- Java 实现树形结构
- 实现GridView树形结构
- JavaSwing实现树形结构
- JavaSwing实现树形结构
- 树形结构的实现
- 手动实现树形结构
- 树形结构递归实现
- js实现树形结构
- Python树形打印目录结构
- Python实现 Linux tree命令:用树形结构显示目录结构
- 1009. 说反话 (20)
- LCD电子书项目(五)
- bzoj2301【HAOI2011】Problem b
- Nodejs之request 和 response 对象的具体介绍
- maven基本配置及创建web项目
- 一行python实现树形结构
- java集合:ArrayList和Vector的区别
- win7 64位下如何安装配置mysql
- 1003 Hangover(数学水题)
- SpringMVC集成Hessian
- java集合:ArrayList,Vector, LinkedList的存储性能和特性
- 网络流二十四题之一 —— 飞行员配对方案问题(AIR)
- Java复习笔记---小随笔---匿名内部类
- lua 入门