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

如何按首尾元素匹配规则排序嵌套列表的子列表?

按特定规则拼接嵌套子列表

我需要将多个子列表组合成一个符合以下规则的嵌套列表:

  • 第一个子列表必须是首元素为0的列表
  • 后续每个子列表的首元素需与前一个子列表的尾元素相同

举个实际例子:
输入子列表集合:[0, 3], [7, 0], [3, 8], [8, 7]
期望输出的嵌套列表:[[0, 3], [3, 8], [8, 7], [7, 0]]

解决方案(Python实现)

可以通过构建映射字典快速匹配下一个子列表,具体代码如下:

def chain_sublists(sublists):
    # 建立「子列表首元素 → 对应子列表」的映射字典
    start_to_sublist = {item[0]: item for item in sublists}
    result = []
    
    # 找到起始子列表(首元素为0)
    current_item = start_to_sublist[0]
    result.append(current_item)
    
    # 循环拼接直到所有子列表都被加入
    while len(result) < len(sublists):
        next_start = current_item[1]
        current_item = start_to_sublist[next_start]
        result.append(current_item)
    
    return result

# 测试示例
input_list = [[0, 3], [7, 0], [3, 8], [8, 7]]
print(chain_sublists(input_list))
# 输出结果:[[0, 3], [3, 8], [8, 7], [7, 0]]

逻辑说明

  1. 先通过字典建立索引,这样每次查找下一个匹配的子列表只需要O(1)时间,避免了反复遍历所有子列表的低效操作
  2. 从首元素为0的子列表开始,作为拼接的起点
  3. 每次取当前子列表的尾元素,去字典中找到对应的下一个子列表,加入结果列表
  4. 循环直到结果列表的长度和输入子列表的长度一致,确保所有元素都被正确拼接

更新:问题已解决!感谢所有贡献者!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:20:42