我正在嘗試從這本詞典中獲取一個人的老年水平:
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
uj5u.com熱心網友回復:
這是一個陳述句中的簡單遞回(假設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
uj5u.com熱心網友回復:
我想我得到了解決方案:
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_
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/469269.html
下一篇:試圖從字典創建家譜
