Attualmente sto lavorando con una funzione ricorsiva in Python, e ho incontrato un muro. Come indicato, il problema è di restituire la profondità massima di una lista annidata arbitrariamente.On Ricerca della profondità massima di un elenco annidato arbitrariamente
Ecco quello che ho finora:
def depthCount(lst):
'takes an arbitrarily nested list as a parameter and returns the maximum depth to which the list has nested sub-lists.'
var = 0
if len(lst) > 0:
if type(lst[0]) == list:
var += 1
depthCount(lst[1:])
else:
depthCount(lst[1:])
else:
return var
ho la sensazione che il problema è con i miei chiamate ricorsive (puo 'essere ovvio). In effetti restituirà var quando l'elenco è arrivato alla fine, ma quando ho un elenco non vuoto, le cose vanno male. Nulla viene restituito affatto.
Sto tagliando sbagliato? Dovrei fare qualcosa prima della fetta nella chiamata ricorsiva?
Il problema potrebbe riguardare anche il caso base.
Perché si dovrebbe restituire qualcosa quando non c'è alcun 'return var' in alcun punto nel' se len (lst)> 0: 'block? – Navith
Anche se si desidera digitare l'opzione 'lista' in modo da non ricorrere a stringhe, tuple, dicts, ecc., Si vuole anche evitare di ricorrere in sottoclassi di' list'? Altrimenti usa 'isinstance (lst [0], lista)'. – abarnert
Puoi essere più specifico di come sono le tue "liste annidate"? Contengono qualcosa di diverso dalle liste, o sono letteralmente solo cose come '[[[], []], [], [[]]]'? –