You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中统计嵌套列表元素数量并展平列表?

统计嵌套结构中的书籍总数

你遇到的reduce用法问题,根源是没有指定初始值:当author["languages"]只有一个元素时,reduce会直接返回该元素(单个language对象),转成list时就会把对象的键名["language", "books"]返回,而非预期的书籍列表。

下面是几种可行的替代方法:

方法1:修正reduce用法(指定初始值)

给reduce加上空列表作为初始值,确保每次迭代都是列表相加:

from functools import reduce

author = authorList[0]
all_books = reduce(lambda acc, lang: acc + lang["books"], author["languages"], [])
total_books = len(all_books)  # 结果为9

方法2:用生成器表达式直接求和(最简洁高效)

不需要展平整个书籍列表,直接累加每个语言下的书籍数量:

author = authorList[0]
total_books = sum(len(lang["books"]) for lang in author["languages"])

方法3:用itertools.chain展平列表

适合需要保留完整书籍列表后续处理的场景:

from itertools import chain

author = authorList[0]
all_books = list(chain.from_iterable(lang["books"] for lang in author["languages"]))
total_books = len(all_books)

内容的提问来源于stack exchange,提问作者Suule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:35:30