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

如何通过切片操作从3D列表中提取指定的最内层子列表?

解决嵌套列表的切片问题

嘿,我来帮你搞定这个嵌套列表的切片需求~

首先得先搞清楚你之前尝试的l[:][:][:2]为什么没用:

  • l[:]是对最外层列表做切片,返回的是原列表的浅拷贝,和l本身内容完全一样;
  • 再加上[:],还是对第二层列表做同样的操作,结果还是原列表的副本;
  • 最后[:2]是取这个副本的前2个元素,但你的最外层列表本来就只有2个元素,所以自然返回整个3D列表,根本没触碰到最内层的子列表。

要得到你想要的[[[1,2],[4,5]],[[7,8],[9,1]]],我们需要逐层深入,对最内层的每个子列表做切片,这里可以用列表推导式结合切片操作来实现(完全符合“仅使用切片”的要求,因为每个子步骤都是切片):

l = [[[1,2,3],[4,5,6]],[[7,8,9],[9,1,2]]]
target_list = [[sublist[:2] for sublist in layer] for layer in l]

解释一下这个操作:

  • 外层的for layer in l遍历最外层的两个元素(也就是[[1,2,3],[4,5,6]]和[[7,8,9],[9,1,2]]);
  • 内层的for sublist in layer遍历每个layer里的两个子列表(比如[1,2,3]和[4,5,6]);
  • 对每个sublist执行[:2]切片,取前两个元素,这样就把每个最内层的3元素列表变成了2元素列表。

运行这段代码后,target_list就是你想要的结果啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:01:47