我有以下代码,必须转换这个元组
(
'person.firstname',
'person.patronymic',
'person.documents.type',
'person.documents.number',
'person.employee_set.unit.short_name',
'person.employee_set.group_set.name',
'person.employee_set.group_set.period.code',
'unit.short_name',
)
像这样读字典
{
"person": {
"patronymic": {},
"documents": {
"type": {},
"number": {}
},
"employee_set": {
"unit": {
"short_name": {}
},
"group_set": {
"name": {},
"period": {
"code": {}
}
}
},
"firstname": {}
},
"unit": {
"short_name": {}
}
}
代码:
def to_dict(items):
di = {}
for item in items:
parse(di, item)
return di
def parse(di, item):
sep = item.find('.')
if sep != -1:
key = item[:sep]
if not key in di.keys():
di[key] = {}
return parse(di[key], item[sep + 1:])
elif len(item) > 0:
di[item] = {}
return di
有没有可能在没有递归的情况下优化这段代码?据我所知,这里有尾部递归,但我不知道如何在循环中转换它
我重写了这个函数,没有递归。你知道吗
算法:我将每条路径分割成不同的部分,然后在循环中构建子部分,保留对我当前所在字典部分的引用。你知道吗
相关问题 更多 >
编程相关推荐