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

如何用一行Python代码提取嵌套列表中每个子列表的前两个元素?

解决Python嵌套列表提取子列表前两个元素的问题

嘿,我来帮你搞定这个问题!首先咱们先搞清楚你原来的代码为什么不行:a[:][0:2]其实是先通过a[:]复制了整个原列表,然后再取这个复制列表的前两个子列表,所以得到的结果会是[[1,2,3,4,5], [6,7,8,9,10]],这和你想要的“每个子列表取前两个元素”完全不是一回事~

正确的一行代码实现方法

最直观且Pythonic的方式是用列表推导式,一行就能搞定:

a = [[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,18,20]]
b = [sublist[:2] for sublist in a]

运行这段代码后,b就会是你想要的结果:[[1, 2], [6, 7], [11, 12], [16, 17]]。

原理很简单:遍历原列表a中的每一个子列表sublist,对每个子列表执行sublist[:2](取该子列表的前两个元素),最后把这些结果收集成一个新列表。

另一种可选方法(用map函数)

如果你想用map函数来实现,也可以写成一行:

b = list(map(lambda x: x[:2], a))

不过相比之下,列表推导式的可读性更强,更推荐日常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:21:02