试图从家庭字典中获取一个人的老年级别
Trying to get the old age level of a person from family dictionary
我正在尝试从这本字典中获取一个人的老年级别:
d = {'Sıdıka': [{'Aziz': [{'Ahmet': [{'Kuzey': []}]}, {'Öznur': [{'Elif': []}, {'Yiğit': []}]}, {'İlknur': [{'Nurullah': []}, {'Büşra': []}]}, {'İlker': [{'Melih': []}]}]}]}
“Sıdıka”是最年长的,我想确定她的等级(即 3(例如,“Sıdıka”是“Kuzey”的
父亲的,父亲的,母亲的。这使得 3)).
我怎样才能做到这一点?
我试过:
递归,但想不通。
我的尝试:
def new(self,dict,count,max):
for i in dict:
print(dict[i])
if len(dict[i])!=0:
for i in dict[i]:
self.new(self,i,count,max)
count+=1
print(count)
else:
return count
我想我找到了解决方案:
self.max_= 0
def new(self,dict,count):
for i in dict:
print(dict[i])
if len(dict[i])!=0:
for i in dict[i]:
print(self.max_)
self.new(self,i,count)
count+=1
# print(count)
else:
if count>self.max_:
self.max_=count
return self.max_
这是一个简单的递归语句(假设 d
输入字典)。
您可以取消注释打印以查看其工作原理。
def level(d, lvl=0):
#print(f'level {lvl}:', d)
return max((lvl, *(level(l, lvl=lvl+1)
for v in d.values()
for l in v)
))
level(d)
输出:3
我正在尝试从这本字典中获取一个人的老年级别:
d = {'Sıdıka': [{'Aziz': [{'Ahmet': [{'Kuzey': []}]}, {'Öznur': [{'Elif': []}, {'Yiğit': []}]}, {'İlknur': [{'Nurullah': []}, {'Büşra': []}]}, {'İlker': [{'Melih': []}]}]}]}
“Sıdıka”是最年长的,我想确定她的等级(即 3(例如,“Sıdıka”是“Kuzey”的 父亲的,父亲的,母亲的。这使得 3)).
我怎样才能做到这一点?
我试过: 递归,但想不通。
我的尝试:
def new(self,dict,count,max):
for i in dict:
print(dict[i])
if len(dict[i])!=0:
for i in dict[i]:
self.new(self,i,count,max)
count+=1
print(count)
else:
return count
我想我找到了解决方案:
self.max_= 0
def new(self,dict,count):
for i in dict:
print(dict[i])
if len(dict[i])!=0:
for i in dict[i]:
print(self.max_)
self.new(self,i,count)
count+=1
# print(count)
else:
if count>self.max_:
self.max_=count
return self.max_
这是一个简单的递归语句(假设 d
输入字典)。
您可以取消注释打印以查看其工作原理。
def level(d, lvl=0):
#print(f'level {lvl}:', d)
return max((lvl, *(level(l, lvl=lvl+1)
for v in d.values()
for l in v)
))
level(d)
输出:3