sum of nested list in Python

list, python, python-3.3

Solution

You need to use `isinstance` to check whether an element is a list or not. Also, you might want to iterate over the actual list, to make things simpler.

def nested_sum(L):
    total = 0  # don't use `sum` as a variable name
    for i in L:
        if isinstance(i, list):  # checks if `i` is a list
            total += nested_sum(i)
        else:
            total += i
    return total

Problem

I try to sum a list of nested elements e.g, `numbers=[1,3,5,6,[7,8]]` should produce `sum=30` I wrote the following code : ``` 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 ``` The above code gives following error: object of type 'int' has no len() I also tried `len([L[i]])`, still not working. Anyone can help? It is Python 3.3

Original source

Related problems