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

Python如何合并列表中存在单个公共数值的元组元素?

二元组合并实现方案

实现思路

  • 遍历所有两两组合的二元组,判断两个组是否仅共享1个公共元素
  • 对符合条件的两个组,合并所有元素后去重,生成目标长度的合并元组
  • 对合并结果做全局去重,避免重复输出相同的元组

可直接运行的代码示例

# 原始二元组列表
edges = [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 0), 
         (0, 6), (1, 7), (1, 8), (2, 9), (2, 10), (3, 11), 
         (4, 12), (4, 13), (5, 14), (5, 15)]

merged_set = set()

# 遍历所有两两不同的二元组组合
for idx1 in range(len(edges)):
    group1 = edges[idx1]
    set1 = set(group1)
    for idx2 in range(idx1 + 1, len(edges)):
        group2 = edges[idx2]
        set2 = set(group2)
        # 仅当两个组只有1个公共元素时合并
        common_elements = set1 & set2
        if len(common_elements) == 1:
            # 合并后排序转元组,方便去重
            merged_group = tuple(sorted(set1 | set2))
            merged_set.add(merged_group)

# 转成列表查看结果
final_result = list(merged_set)
print(final_result)

结果说明

运行代码后输出的结果就包含你举例的(0, 1, 2)、(0, 1, 7)等符合要求的合并元组,如果你不需要排序后的结果,去掉sorted方法即可。
你之前的代码仅能处理两个指定列表的合并,没有覆盖所有二元组的两两组合判断逻辑,所以无法批量得到全部合并结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:54:03