python含有多种结构的例题_Python多层结构练习题

原结构

industry_list = [

{

"parent_ind" : "女装",

"name" : "连衣裙"

},

{

"name": "女装"

},

{

"parent_ind" : "女装",

"name" : "半身裙"

},

{

"parent_ind" : "女装",

"name" : "A字裙"

},

{

"name": "数码"

},

{

"parent_ind" : "数码",

"name": "电脑配件"

},

{

"parent_ind" : "电脑配件",

"name": "内存"

},

]

为了取用方便,我们希望可以将其转换为树状格式,例如

{

"数码": {

"电脑配件": {

"内存" : {}

}

},

"女装" : {

"连衣裙": {},

"半身裙": {},

"A字裙": {}

}

}

实现一个方法完成这个转换

def convert_format(data)

实现一个方法完成这个转换

lst1 = []

lst2 = []

d = {}

def convert_format(data):

for dic in data:

if not dic.get("parent_ind"):

d[dic["name"]] = {}

else:

lst1.append(dic)

for dic in lst1:

if dic['parent_ind'] in d:

d[dic.get('parent_ind')][dic['name']] = {}

else:

lst2.append(dic)

for dic in lst2:

for t in d.values():

if dic['parent_ind'] in t:

t[dic['parent_ind']][dic['name']] = {}

return d

print(convert_format(industry_list))

2. 递归简单实现

dirs = {"C":"NULL",

"D":{"D1":"NULL",

"D2":{"D2_1":"NULL"}},

"E":{"E1":{"E1_1":{"E1_1_1":"NULL"},

"E1_2":"NULL"},

"E2":"NULL"}

}

def dirnames(dirs):

"""

这个函数用于将上述定义的 dirs 中的每一个 key 和子元素中的 key

取出并打印出来如:依次输出 C、D、D1、D2_1、D……请补全代码。

"""

# 第一种方法

# for key,values in dirs.items():

# print(key)

# if type(values) == dict:

# dirnames(values)

# 第二种方法

for k, v in dirs.items():

print(k)

# isinstance(a,b) 判断a类是否是b类的子类或继承b类

# issubclass(a,b) 判断a是否是b类或b类的子类的实例对象

if isinstance(v, dict):

dirnames(v)

dirnames(dirs)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值