如何从多个数组的对应索引提取值并合并为独立数组?
数组对应索引元素合并方案
给定多个长度一致的数组,需要提取每个索引位置的所有元素并组成独立数组(即矩阵转置),以下是几种常见编程语言的实现方式:
JavaScript 实现
利用数组的map方法,遍历第一个数组的每个索引,再从所有输入数组中提取对应索引的元素:
const inputArrays = [ [1, 2, 3], [1, 2, 3], [11, 12, 13] ]; const transposed = inputArrays[0].map((_, idx) => { return inputArrays.map(arr => arr[idx]); }); console.log(transposed); // 输出结果:[[1, 1, 11], [2, 2, 12], [3, 3, 13]]
Python 实现
使用Python内置的zip函数,配合map和list完成转置,zip(*arrays)会将输入数组按索引分组,再转换为列表格式:
input_arrays = [ [1, 2, 3], [1, 2, 3], [11, 12, 13] ] transposed = list(map(list, zip(*input_arrays))) print(transposed) # 输出结果:[[1, 1, 11], [2, 2, 12], [3, 3, 13]]
注意事项
以上实现默认所有输入数组长度相同,如果存在长度不一致的数组,Python的zip会以最短数组长度为准,JavaScript的map方法则会在数组长度不足时返回undefined,可根据实际需求调整逻辑。
内容的提问来源于stack exchange,提问作者CodeAndCode
相关产品推荐
相关产品推荐

