Python Lambda函数来获取嵌套列表中所有列表的长度之和?

Python Lambda函数来获取嵌套列表中所有列表的长度之和?,python,lambda,Python,Lambda,我不熟悉lambda函数。如何使用lambda函数获取嵌套列表中列表的长度之和。对于上述示例,结果应为10。在生成器表达式中,计算每个子列表的len,然后将其传递到sum函数中 get_total_length([[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]]) 作为lambda函数 >>> values = [[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]] >>> sum(len(i) for i in

我不熟悉lambda函数。如何使用lambda函数获取嵌套列表中列表的长度之和。对于上述示例,结果应为10。

在生成器表达式中,计算每个子列表的
len
,然后将其传递到
sum
函数中

get_total_length([[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]])
作为
lambda
函数

>>> 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
输出:

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)))

你能得到多深的嵌套?如果需要深入到二维以上,那么编写lambda将变得更加困难。您是否需要
get_total_length([[1][[1][[1][[1][]]]]
才能工作?我希望使用map,但这也可以@谢谢你!使用
map
,它将只是
sum(map(len,values))
[10, 1]