我试图在包含列表本身的列表中对数字求和:
ex:list=['apple', [1], 'pineapple', [3]]
有人可以向我解释我该怎么做吗?
答案 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