将列表与里面的列表相加

时间:2016-01-25 21:07:47

标签: python list python-2.7 sum python-2.x

我试图在包含列表本身的列表中对数字求和:

ex:list=['apple', [1], 'pineapple', [3]]

有人可以向我解释我该怎么做吗?

2 个答案:

答案 0 :(得分:2)

你可以递归和总结任何类似数字的东西

def sum_deep(lst):
    sum = 0
    for el in lst:
        if isinstance(el, list):
            sum += sum_deep(el)
        try:
            sum += el
        except TypeError:  # this isn't addable
            pass  # but that's okay
    return sum

lst = ['apple', [1], 'pineapple', [3]]
sum_deep(lst)  # 4

但最终你有一个讨厌的数据结构。修复它。

答案 1 :(得分:2)

如果您的所有号码都是列表中的列表,您可以这样做:

l = ['apple', [1], 'pineapple', [3]]
print sum([sum(i) for i in l if isinstance(i, list)])

输出:

4