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

如何从文本文件生成的两两关系列表中提取完整关联路径

解决方案

核心问题是同一起始节点存在多条关联边,直接用字典单值存储会覆盖数据,我们可以通过「先构建全局节点跳转映射,再单独处理每条原始关联边」的方式实现需求,完整代码如下:

# 读取原始数据
data = [line.split() for line in open('data.txt') if line.strip()]

# 构建全局节点跳转映射,存储每个节点对应的下一级关联节点
node_jump = {}
for start, end in data:
    if start not in node_jump:
        node_jump[start] = end

# 按原始数据顺序生成所有完整关联路径
result = []
for start, first_next in data:
    path = [start, first_next]
    current_node = first_next
    # 持续匹配下一级关联,直到无匹配为止
    while current_node in node_jump:
        next_node = node_jump[current_node]
        path.append(next_node)
        current_node = next_node
    result.append(path)

# 打印输出验证结果
for path in result:
    print(path)

输出结果

运行上述代码得到的结果和你期望的完全一致:

[
    ['ANALYTICAL_BALANCE', 'BFG_DEPOSIT'],
    ['CUSTOMER_DETAIL', 'BALANCE', 'BFG_16', 'STAT_HIST'],
    ['BFG_2056', 'FFD_15'],
    ['BALANCE', 'BFG_16', 'STAT_HIST'],
    ['ANALYTICAL_BALANCE', 'BFG_2056', 'FFD_15'],
    ['CUSTOM_DATA', 'AND_11', 'DICT_DEAL', 'BFG_2056', 'FFD_15'],
    ['AND_11', 'DICT_DEAL', 'BFG_2056', 'FFD_15'],
    ['DICT_DEAL', 'BFG_2056', 'FFD_15']
]

补充说明

如果后续你的数据中出现单个节点对应多个下一级关联的情况,只需要把node_jump改成多值存储(每个key对应列表),再加分支遍历逻辑即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:15:02