一行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实现树形结构的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
3 送米的祝福语简短
10 简短有深度的祝福语
11 伴郎红包祝福语朋友简短
12 爱情贺卡祝福语简短情侣
13 中秋祝福语简短有深度
14 乔迁送茶具简短祝福语
15 厨房祝福语简短100句
16 送别的祝福语朋友简短
17 结婚祝福语简短最好的
18 小朋友上学祝福语简短