La funzione accetta un elenco e restituisce un secondo in base a quanti elenchi sono presenti nell'elenco senza includere l'elenco stesso. (Per semplicità possiamo assumere tutto è un numero intero o un elenco.)Come trovare il numero di elenchi annidati in un elenco?
Ad esempio:
x=[1,2,[[[]]],[[]],3,4,[1,2,3,4,[[]] ] ]
count_list(x) # would return 8
Credo che utilizzando la ricorsione avrebbe aiutato, ma non sono sicuro come implementarlo, questo è quello che ho finora.
def count_list(a,count=None, i=None):
if count==None and i==None:
count=0
i=0
if i>len(a)
return(count)
if a[i]==list
i+=1
count+=1
return(count_list(a[i][i],count))
else:
i+=1
return(count_list(a[i]))
Che ne dite di una risposta, ovviamente, non va? 'str (x) .count (" [") - 1' –
fintanto che non ci sono stringhe in nessuna lista, quella soluzione è PROBABILE non peggiore della ricorsione. Se ci sono stringhe in una lista allora potresti avere una stringa che contiene '" ["' che rompe tutto di sempre. –
Sulla riga 'def', ci dovrebbero essere singoli segni di uguale non doppio. –