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

Python实现表格中Col1列表的两两组合Explode展开

表格数据处理方案

需求说明

将输入表格中Col1列的列表元素生成所有不重复的两两组合,同时保留对应行Col2、Col3的数值,且支持Col1列表长度和元素动态变化。

输入示例

Col 1Col 2Col 3
[A,B,C,D]Value 1Value 2

期望输出示例

Col 1Col 2Col 3
[A,B]Value 1Value 2
[A,C]Value 1Value 2
[A,D]Value 1Value 2
[B,C]Value 1Value 2
[B,D]Value 1Value 2
[C,D]Value 1Value 2

通用实现代码(Python)

借助itertools.combinations工具可快速生成两两组合,代码适配任意长度的Col1列表:

import itertools

# 模拟输入表格数据(可替换为实际读取的表格数据)
input_data = [
    {"Col1": ["A", "B", "C", "D"], "Col2": "Value 1", "Col3": "Value 2"},
    # 可添加更多行,比如 {"Col1": ["X", "Y"], "Col2": "Value 3", "Col3": "Value 4"}
]

output_data = []
for row in input_data:
    # 生成Col1列表的所有不重复两两组合
    pairs = itertools.combinations(row["Col1"], 2)
    for pair in pairs:
        # 为每个组合生成新行,保留原行的Col2、Col3值
        output_data.append({
            "Col1": list(pair),
            "Col2": row["Col2"],
            "Col3": row["Col3"]
        })

# 格式化输出表格
print("| Col 1    | Col 2    | Col 3 |")
print("| -------- | -------- |-------|")
for item in output_data:
    col1_str = f"[{','.join(item['Col1'])}]"
    print(f"| {col1_str:<8} | {item['Col2']:<8} | {item['Col3']:<6} |")

代码说明

  1. itertools.combinations(row["Col1"], 2):自动生成列表中所有无重复的两两组合(不考虑顺序,如[A,B]与[B,A]视为同一组合,仅保留一次)
  2. 遍历每一行输入数据,为每个组合生成对应新行,确保Col2、Col3值与原行完全一致
  3. 支持多输入行,且适配任意长度的Col1列表(比如列表长度为2时生成1组组合,长度为5时生成10组组合)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:25:31