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

Python中如何不使用for循环从二维数组提取各子数组第n个元素组成新数组

实现方案

这里提供3种符合要求的实现,均无显式for循环,可一行写完:

1. 纯Python无依赖方案1(map实现,兼容性最强)

直接通过map遍历每个子数组取对应索引,子数组长度不一致时只要目标索引存在就可正常运行:

# n为要提取的元素位置索引,从0开始计数,你示例里的第2个元素对应n=1
res = list(map(lambda x: x[1], [[1,2,3],[4,5,6],[7,8,9]]))
# 输出:[2,5,8]

2. 纯Python无依赖方案2(zip实现,写法更简洁)

对二维数组解包后用zip按列重组,直接取对应列即可:

res = list(list(zip(*[[1,2,3],[4,5,6],[7,8,9]]))[1])
# 输出:[2,5,8]

注意:该方案要求所有子数组长度都大于等于目标索引+1,否则会按最短子数组长度截断。

3. 大数据量最优方案(numpy实现,性能最高)

如果是处理大规模数值数组,用numpy切片性能远高于纯Python实现:

import numpy as np
res = np.array([[1,2,3],[4,5,6],[7,8,9]])[:,1].tolist()
# 输出:[2,5,8]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:09:04