somme de la liste imbriquée dans Python

J'essaie de la somme d'une liste d'éléments imbriqués

e.g, nombres=[1,3,5,6,[7,8]], somme=30

J'ai écrit le code suivant

def nested_sum(L):

    sum=0
    for i in range(len(L)):
       if (len(L[i])>1):
          sum=sum+nested_sum(L[i])
       else:
          sum=sum+L[i]
    return sum

Le code ci-dessus donne l'erreur suivante: l'objet de type " int " n'a pas de len()
J'ai aussi essayé len([L[i]]), ne fonctionne toujours pas

Quelqu'un peut aider? BTW, c'est Python 3.3

Essayez l'un des nombreux aplatir l'fonctions posté ici, jusqu'à présent, et tout simplement sum(flatten(L))
Pour Python, si j'utilise l'appel récursif, dois-je m'inquiéter au sujet de prendre trop de temps que la pile va? Je sais que pour ce problème, je ne sera probablement pas vous soucier de ce
C'est probablement un peu tôt pour cela, mais si vous voulez réduire la consommation de mémoire, utiliser un générateur à la place.

OriginalL'auteur Jin | 2013-02-17