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

Python如何基于元组列表构建双向关联键值对字典

实现思路

核心逻辑就是按双向关联的规则,逐对处理元组里的两个节点:

  • 初始化空字典存储节点映射关系,字典的键是节点标识,值是该节点所有关联节点组成的列表
  • 遍历每一组关联元组,对元组内的两个节点,互相把对方加入自己的关联列表
  • 新增键之前先判断节点是否已经在字典里,不存在就先初始化空列表,避免KeyError
可直接运行的参考代码
# 输入的存储节点关联元组列表
edge_list = [('0-N', '3-C'), ('3-C', '5-C'), ('3-C', '9-C'), ('9-C', '12-C')]
adjacent_dict = {}

for node_u, node_v in edge_list:
    # 给u添加v的关联
    if node_u not in adjacent_dict:
        adjacent_dict[node_u] = []
    adjacent_dict[node_u].append(node_v)
    # 给v添加u的关联
    if node_v not in adjacent_dict:
        adjacent_dict[node_v] = []
    adjacent_dict[node_v].append(node_u)
输出验证

执行上述代码后打印adjacent_dict,得到的结果和预期完全匹配:
{'0-N': ['3-C'], '3-C': ['0-N', '5-C', '9-C'], '9-C': ['3-C', '12-C'], '12-C': ['9-C']}

如果后续输入可能存在重复的关联元组,可以把存关联节点的结构换成集合(set)自动去重,最后按需转成列表即可,基础逻辑和上面的实现一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:33:28