一行python实现树形结构的方法
定义
使用内置的defaultdict我们可以很容易的定义一个树形数据结构
deftree():returndefaultdict(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']['sweetpotato']
这时我们需要将他们转换成为标准的字典
defdicts(t):return{k:dicts(t[k])forkint}
我们用pprint(dicts(taxonomy))来输出结构
迭代
这颗树可以很欢乐的被迭代处理,同样因为只要简单的引用一个接口它就会出现
举例来说,假设我们想要解析一个新动物的列表,将他们加入我们上面的taxonomy,我们只需要调用这样一个函数
add(taxonomy,'Animalia,Chordata,Mammalia,Cetacea,Balaenopteridae,Balaenoptera,bluewhale'.split(','))
我们可以简单的实现它
defadd(t,keys): forkeyinkeys: t=t[key]
以上这篇一行python实现树形结构的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练