原题
假设前端同学通过接口向后端传了天猫的行业信息,例如:
industry_list = [
{
"parent_ind" : "女装",
"name" : "连衣裙"
},
{
"name": "女装"
},
{
"parent_ind" : "女装",
"name" : "半身裙"
},
{
"parent_ind" : "女装",
"name" : "A字裙"
},
{
"name": "数码"
},
{
"parent_ind" : "数码",
"name": "电脑配件"
},
{
"parent_ind" : "电脑配件",
"name": "内存"
},
]为了取用方便,我们希望可以将其转换为树状格式,例如:
{
"数码": {
"电脑配件": {
"内存" : {}
}
},
"女装" : {
"连衣裙": {},
"半身裙": {},
"A字裙": {}
}
}
实现一个方法完成这个转换,时间复杂度请控制在O(n)
def convert_format(data):
pass
自己乱写了个,大家有没有更好的
def convert_format(data):
d2 = dict()
d1 = dict()
for i in data:
parent = i.get('parent_ind')
name = i.get('name')
d3 = {name: {}}
if not parent:
d1[name] = d2.setdefault(name, {})
else:
d2.update(d3)
d2.setdefault(parent, {}).update(d3)
return d1