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

数组双元素合并及格式规整的实现方案咨询

数组合并与格式调整实现方案

问题描述

给定示例数组:

original_array = [
    [3, 5, 6],
    [4, -1, -1],
    [5, 7, -1],
    [1, 6, -1],
    [1, 0, 6],
    [3, 4, 8],
    [2, 3, 5],
    [2, -1, -1],
    [0, 4, 5],
    [0, 5, -1]
]

需完成以下操作:

  • 合并数组中索引2和4的元素为一个新元素
  • 移除合并后元素内的重复值
  • 将合并后元素中的所有-1移至末尾
  • 为所有元素补充-1,确保数组保持矩形结构
  • 将合并后的元素移至数组首位,最终得到目标数组:
target_array = [
    [5, 7, 1, 0, 6, -1],
    [3, 5, 6, -1, -1, -1],
    [4, -1, -1, -1, -1, -1],
    [1, 6, -1, -1, -1, -1],
    [3, 4, 8, -1, -1, -1],
    [2, 3, 5, -1, -1, -1],
    [2, -1, -1, -1, -1, -1],
    [0, 4, 5, -1, -1, -1],
    [0, 5, -1, -1, -1, -1]
]

实现方案(Python)

以下是对应需求的完整代码实现:

# 原始数组
original = [
    [3, 5, 6],
    [4, -1, -1],
    [5, 7, -1],
    [1, 6, -1],
    [1, 0, 6],
    [3, 4, 8],
    [2, 3, 5],
    [2, -1, -1],
    [0, 4, 5],
    [0, 5, -1]
]

# 1. 合并指定索引的元素(索引2和4)
idx1, idx2 = 2, 4
merged = original[idx1] + original[idx2]

# 2. 移除重复值,保留元素首次出现的顺序
seen = set()
unique_vals = []
for num in merged:
    if num not in seen:
        seen.add(num)
        unique_vals.append(num)

# 3. 将所有-1移至合并后元素的末尾
non_neg1 = [x for x in unique_vals if x != -1]
neg1_count = unique_vals.count(-1)
processed_merged = non_neg1 + [-1] * neg1_count

# 4. 确定数组最终列数,为剩余元素补充-1以保持矩形结构
max_col = len(processed_merged)
remaining_elements = []
for i in range(len(original)):
    if i != idx1 and i != idx2:
        current = original[i].copy()
        while len(current) < max_col:
            current.append(-1)
        remaining_elements.append(current)

# 5. 将合并后的元素移至首位,组合成最终数组
final_array = [processed_merged] + remaining_elements

# 打印验证结果
for row in final_array:
    print(row)

步骤说明

  • 合并元素:直接拼接指定索引的两个子数组,得到初始合并结果。
  • 去重处理:通过集合记录已出现的元素,遍历过程中只保留首次出现的元素,保证元素顺序不变。
  • 调整-1位置:拆分合并元素为非-1部分和-1部分,再将-1部分追加到末尾。
  • 保持矩形结构:以合并后处理好的元素长度为基准,给其他所有子数组补充-1,直到长度一致。
  • 调整数组顺序:将处理完成的合并元素放在数组最前端,后续跟上处理后的剩余元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:45:33