Java:如何将一维数组值配对为二维数组并排除指定对应值
从两个数组过滤生成目标二维数组的实现方法
核心思路
同时遍历两个数组的对应元素,筛选出arr1中不为-1的元素,并将其与arr2对应位置的元素组成子数组,最终拼接成目标二维数组。
Python 实现方式
简洁版:列表推导式
用列表推导式可以一行完成,代码简洁高效:
arr1 = [0, 1, -1, 3, -1] arr2 = [15, 15, 10, 20, 20] target_arr = [[a1, a2] for a1, a2 in zip(arr1, arr2) if a1 != -1] print(target_arr) # 输出:[[0, 15], [1, 15], [3, 20]]
zip(arr1, arr2)会将两个数组对应索引的元素配对成元组,比如(0,15)、(1,15);if a1 != -1过滤掉arr1中值为-1的配对;- 每个符合条件的配对被转为列表
[a1,a2],最终组合成目标二维数组。
基础版:循环遍历(适合新手理解)
如果需要更直观的逻辑展示,可以用普通循环实现:
arr1 = [0, 1, -1, 3, -1] arr2 = [15, 15, 10, 20, 20] target_arr = [] for index in range(len(arr1)): # 检查当前arr1元素是否不为-1 if arr1[index] != -1: # 将对应位置的两个元素组成列表加入结果 target_arr.append([arr1[index], arr2[index]]) print(target_arr) # 输出:[[0, 15], [1, 15], [3, 20]]
内容的提问来源于stack exchange,提问作者KLG
相关产品推荐
相关产品推荐

