get_total_length([[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]])
我是lambda函数的新手。如何使lambda函数获得嵌套列表中列表长度的总和。对于上面提到的例子,结果应该是10。
答案 0 :(得分:3)
在生成器表达式中,计算每个子列表的len
,然后将其传递到sum
函数。
>>> values = [[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]]
>>> sum(len(i) for i in values)
10
作为lambda
函数
>>> get_total_length = lambda values: sum(len(i) for i in values)
>>> get_total_length([[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]])
10
答案 1 :(得分:0)
您可以使用lambda
函数的递归来查找嵌套结构的长度:
data = [[[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]], [[[[[[[1]]]]]]]]
full_length = lambda x:sum(1 if not isinstance(i, list) else full_length(i) for i in x)
print(list(map(full_length, data)))
输出:
[10, 1]