G'day,ricorsiva profondità di dizionario Python
Sto cercando di trovare la profondità ricorsiva di una funzione che strascico un dizionario e io sono un po 'perso ... Attualmente ho qualcosa di simile:
myDict = {'leve1_key1': {'level2_key1': {'level3_key1': {'level4_key_1': {'level5_key1': 'level5_value1'}}}}}
E voglio sapere quanto annidato il dizionario più nidificato è ... così ho effettuare le seguenti ...
def dict_depth(d, depth):
for i in d.keys():
if type(d[i]) is dict:
newDict = d[i]
dict_depth(newDict, depth+1)
return depth
print dict_depth(myDict, 0)
l'unico problema è, il ciclo ricorsivo restituisce solo il ritorno del valore finale (0). se ho messo in un comunicato stampa for i in d.keys():
quindi posso almeno stampare il valore più alto della ricorsione, ma restituendo il valore è una questione diversa ...
Sono sicuro che questo è semplice - ho appena ricevuto jellybrain.
Acclamazioni
Qui non troverete alcun limite (eccetto per la memoria disponibile). Ogni dizionario annidato è un nuovo oggetto che non conosce nulla del suo genitore. – usr
Ma il tuo codice potrebbe imbattersi in un overflow dello stack. Questo non ha nulla a che fare con i limiti del dizionario. – usr