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

Python中如何实现类似JS展开运算符的列表解包以扁平化map返回结果

Python列表解包及扁平化场景解答

Python有对应JavaScript展开运算符的序列解包语法,使用*操作符即可实现,比如[*['a', 'b'], *['c']]会直接得到一维列表['a', 'b', 'c'],和JS的展开运算符效果一致。

针对你的场景,无法仅在lambda内部完成解包来直接得到一维列表:因为map的执行逻辑是1个输入元素对应1个输出结果,lambda无论怎么编写都只能返回单个值(你这里返回的就是split后的子列表),无法直接向map的结果容器里插入多个元素。

你可以配合内置方法实现需求,不需要单独定义扁平化函数,也无需使用列表推导式,有两种常用实现方案:

方案1:使用内置sum函数(无需导入依赖)

利用sum的累加特性,指定初始值为空列表即可完成子列表拼接:

data = ['oh my god','that is','super duper']
result = sum(map(lambda i: i.split(), data), [])
print(result)
# 输出:['oh', 'my', 'god', 'that', 'is', 'super', 'duper']

该方案适合小规模列表使用,写法最简洁。

方案2:使用itertools.chain.from_iterable(性能更优)

处理大规模列表时更推荐该方案,时间复杂度比sum更低:

from itertools import chain
data = ['oh my god','that is','super duper']
result = list(chain.from_iterable(map(lambda i: i.split(), data)))
print(result)
# 输出同上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:45:05