Python 3.x 如何在python中创建组合?

Python 3.x 如何在python中创建组合?,python-3.x,Python 3.x,我有一个.csv文件,布局如下 X1,Y1 X2,Y1,Y2 X3,Y1,Y2,Y3 X4, X5,Y1 我期待这样的输出 X1,Y1 X2,Y1 X2,Y2 X3,Y1 X3,Y2 X3,Y3 X5,Y1 我有可能得到这样的结果吗? 或者有没有更容易完成这项工作的方法 昨天,我刚刚能够阅读CSV,我浏览了一下,获得了关于itertools排列和组合()的信息。我的库中没有itertools,我不知道如何安装它(我已经尽了最大努力) 导入csv 打开('list.csv')作为csvf

我有一个.csv文件,布局如下

X1,Y1 
X2,Y1,Y2 
X3,Y1,Y2,Y3 
X4, 
X5,Y1
我期待这样的输出

X1,Y1
X2,Y1
X2,Y2
X3,Y1
X3,Y2
X3,Y3
X5,Y1

我有可能得到这样的结果吗? 或者有没有更容易完成这项工作的方法

昨天,我刚刚能够阅读CSV,我浏览了一下,获得了关于itertools排列和组合()的信息。我的库中没有itertools,我不知道如何安装它(我已经尽了最大努力)

导入csv

打开('list.csv')作为csvfile: readCsv=csv.reader(csvfile,分隔符=';')


如果你把你的尝试和你的问题一起发布,会更好。无论如何,假设您已经读取了
.csv
文件,并以以下格式存储了数据:

data = [
    ['x1', 'y1'],
    ['x2', 'y1', 'y2'],
    ['x3', 'y1', 'y2', 'y3'],
    ['x4',],
    ['x5', 'y1'],
]
然后,您可以遍历数据中的每个子列表,并找到所有可能的组合。简单的解决方案:

res = []
for arr in data:
    comb = []
    for cell in arr[1:]:
        if len(arr) > 1:
            comb.append(arr[0] + ',' + cell)
    if comb:
        res.append(comb)
此外,您还可以用
join()
替换
arr[0]+'、'+cell
。 上述结果将是:

[['x1,y1'], ['x2,y1', 'x2,y2'], ['x3,y1', 'x3,y2', 'x3,y3'], ['x5,y1']]
如果您喜欢单线解决方案,则:

[[','.join((arr[0], cell)) for cell in arr[1:] if len(arr) > 1] for arr in data if len(arr) > 1]

输出将是相同的。

可能有几种方法可以做到这一点。你试了哪个?发生了什么事?非常感谢安东尼的帮助,这对我这样的初学者来说是一个很大的帮助
[[','.join((arr[0], cell)) for cell in arr[1:] if len(arr) > 1] for arr in data if len(arr) > 1]