如何用Lambda函数计算嵌套列表中所有子列表的长度之和?
用Lambda函数计算嵌套列表子列表长度之和
嘿,刚接触Lambda函数的话,这个需求其实很好实现,结合Python的内置函数就能轻松搞定。咱们直接来看针对你示例的解法:
核心实现思路
我们可以用map()函数把Lambda匿名函数应用到嵌套列表的每一个子列表上,Lambda负责返回每个子列表的长度,最后用sum()把这些长度值加起来就行。
代码示例
def get_total_length(nested_list): # 用map遍历每个子列表,Lambda返回子列表长度,sum求和 return sum(map(lambda sublist: len(sublist), nested_list)) # 测试你的示例 result = get_total_length([[1, 2, 3], [4, 5], [6, 7, 8, 9, 10]]) print(result) # 输出:10
逐行解释
lambda sublist: len(sublist):这是一个匿名函数,接收一个子列表参数sublist,直接返回它的长度。map(..., nested_list):map()会把上面的Lambda函数依次作用到nested_list的每一个元素(也就是每个子列表)上,生成一个包含所有子列表长度的迭代器(这里就是[3, 2, 5])。sum(...):最后把迭代器里的所有数值相加,得到总长度10。
扩展:处理非列表元素的情况
如果你的嵌套列表里可能混有非列表类型的元素(比如单个数字),可以给Lambda加个判断,避免len()报错:
def get_total_length_safe(nested_list): return sum(map(lambda item: len(item) if isinstance(item, list) else 0, nested_list)) # 测试混合元素的情况 print(get_total_length_safe([[1,2], 3, [4,5,6]])) # 输出:5
这样就灵活多啦~
内容的提问来源于stack exchange,提问作者trougc
相关产品推荐
相关产品推荐

