CSV 元素的字母顺序配对,同时在 python 中保持第一个元素不变

Alphabetical pairing of CSV elements while keeping first element constant in python

如何将包含不同长度行(实际上最多 12 行)的 CSV 文件作为输入,然后输出一个新的 CSV 文件,其中新行包含 每行的第 0 个元素 + 按字母顺序排列的每对唯一元素(> 第 0 个)?

原始行元素未按字母顺序排列。

输入和输出示例请看图片。 enter image description here

您可以使用 csv for reading & writing and itertools.combinations 生成对:

import csv
from itertools import combinations

with open('input.csv') as in_f, open('output.csv', 'w') as out_f:
    reader = csv.reader(in_f)
    writer = csv.writer(out_f)

    for row in reader:
        for combination in combinations(sorted(row[1:]), 2):
            writer.writerow(tuple(row[:1]) + combination)

输出:

0,A,B
1,A,B
1,A,C
1,B,C
2,A,B
2,A,C
2,A,D
2,B,C
2,B,D
2,C,D