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

如何仅合并相邻列表中同描述的区间值?

解决方案

首先需要完成两个核心步骤:

  1. 对每口井内部的相邻同描述区间进行合并
  2. 按区间的位置(每口井的第n个区间)分组,若同一位置的所有区间描述相同则合并输出一行,否则每个区间单独输出一行

修改后的完整代码

wells = [
    [
        [0, 4, 'earth'],
        [4, 8, 'suglinok'],
        [8, 20, 'gravel'],
    ],
    [
        [0, 4, 'earth'],
        [4, 8, 'suglinok'],
        [8, 20, 'sand'],
    ],
    [
        [0, 4, 'earth'],
        [4, 16, 'suglinok'],
        [16, 24, 'gravel'],
    ]
]

# 合并单口井内相邻的同描述区间
def merge_adjacent_in_well(well):
    if not well:
        return []
    merged = []
    curr_start, curr_end, curr_desc = well[0]
    for start, end, desc in well[1:]:
        if desc == curr_desc:
            # 相邻同描述,更新结束深度
            curr_end = end
        else:
            merged.append([curr_start, curr_end, curr_desc])
            curr_start, curr_end, curr_desc = start, end, desc
    merged.append([curr_start, curr_end, curr_desc])
    return merged

# 处理所有井
processed_wells = [merge_adjacent_in_well(well) for well in wells]

# 按区间位置分组输出
max_interval_count = max(len(well) for well in processed_wells)
for pos in range(max_interval_count):
    # 收集所有井当前位置的区间和描述
    group_intervals = []
    group_descs = []
    for well in processed_wells:
        if pos < len(well):
            start, end, desc = well[pos]
            group_intervals.append([start, end])
            group_descs.append(desc)
    
    # 判断当前位置的所有区间描述是否一致
    all_same_desc = all(d == group_descs[0] for d in group_descs)
    if all_same_desc:
        # 描述一致,所有区间输出一行
        print(' '.join(str(interval) for interval in group_intervals))
    else:
        # 描述不一致,每个区间单独输出一行
        for interval in group_intervals:
            print(str(interval))

代码说明

  1. 合并单口井内部区间:

    • 遍历单口井的区间,维护当前合并的区间起始、结束深度和描述
    • 若下一个区间描述与当前一致,则更新结束深度;否则将当前合并好的区间存入结果,切换到新的区间
  2. 按位置分组输出:

    • 先确定所有井中最多的区间数量,遍历每个位置
    • 收集所有井在该位置的区间和对应的描述
    • 若该位置所有区间的描述相同,就把这些区间打印在同一行;否则每个区间单独打印一行

输出结果

[0, 4] [0, 4] [0, 4]
[4, 8] [4, 8] [4, 16]
[8, 20]
[8, 20]
[16, 24]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:27:33