def nested_sum(L):
return sum( nested_sum(x) if isinstance(x, list) else x for x in L )
这是 Eugenie 在以下帖子中给出的解决方案:Python 中嵌套列表的总和
我只是试图在不使用理解列表的情况下重新创建它,但我无法得到它。我怎么能做到?
def nested_sum(L):
return sum( nested_sum(x) if isinstance(x, list) else x for x in L )
这是 Eugenie 在以下帖子中给出的解决方案:Python 中嵌套列表的总和
我只是试图在不使用理解列表的情况下重新创建它,但我无法得到它。我怎么能做到?
该代码使用生成器表达式,而不是列表推导。
使用循环并将+=
结果相加:
def nested_sum(L):
total = 0
for x in L:
total += nested_sum(x) if isinstance(x, list) else x
return total
或者,如果您希望条件表达式也扩展为if
语句:
def nested_sum(L):
total = 0
for x in L:
if isinstance(x, list):
total += nested_sum(x)
else:
total += x
return total