如何优化python递归
我有以下代码,必须转换这个元组如何优化python递归,python,recursion,optimization,Python,Recursion,Optimization,我有以下代码,必须转换这个元组 ( '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.per
(
'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):
res = {}
for item in items:
parts = item.split('.')
dest = res
for part in parts:
if not part in dest:
dest[part] = {}
dest = dest[part]
return res
to_dict([
'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',
])
算法:我将每一条路径分割成各个部分,然后在一个循环中构建子部分,保留对我当前所在字典部分的引用。我重写了函数,没有递归
def to_dict(items):
res = {}
for item in items:
parts = item.split('.')
dest = res
for part in parts:
if not part in dest:
dest[part] = {}
dest = dest[part]
return res
to_dict([
'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',
])
算法:我把每条路径分成几个部分,然后在一个循环中构建子部分,保留对我当前所在词典部分的引用。你可以看这篇文章-你可以看这篇文章-谢谢。我在这周学习编程,你帮了我很大的忙。谢谢。我在这周学习编程,你帮了我很大的忙。