J'essaye de faire une fonction qui prend une liste avec des éléments qui sont flottants ou une liste de flottants arbitrairement imbriqués, et retourne une liste de la même longueur avec chaque élément remplacé par sa moyenne.Trouver la moyenne de chaque élément dans une liste de listes arbitrairement imbriquées
ie. lst = [1,[2,[3,[4,[5]]]]] #average of lst[0] = 1 average of lst[1] = (((((4+5)/2)+3)/2)+2)/2 print(Avg(lst))
qui devrait imprimer [1,2.875] voici ce que je suis arrivé à ce jour:
def Avg(lst,n=1):
if lst = [] and n > 1:
return 0
elif lst = []:
return lst
elif type(lst) == float:
return lst
elif type(lst[0]) == float and n > 1:
return (lst[0] + Avg(lst[1:]))/len(lst)
elif type(lst[0]) == list:
total = 0
length = 0
for e in lst[0]:
total += Avg(e)
length += 1
return [total/length] + Avg(lst[1:])
return [lst[0]] + Avg(lst[1:])
quelqu'un peut me diriger dans la bonne direction?