繁体   English   中英

两个列表列表的所有组合

[英]All the combination of two list of lists

我有一个 Python 问题。 我有两个列表列表如下:

    list_1 = [["A1","A2"],["B1","B2"],["C1","C2"]]
    list_2 = [["A3","A4"],["B3","B4"],["C3"]]

我正在寻找这两个列表的所有可能组合,其中每个列表中只有一个元素。 此外,如果组合只有一个“C”,则它应该来自 list_1(具有两个“C”的列表)。 例如:

    output:
    [["A1","A3"],["B1","B3"],["C1","C3"]]
    [["A2","A3"],["B1","B3"],["C2","C3"]]
    [["A1","A4"],["B2","B3"],["C2"]]

这可以用基本的 Python 库来完成吗?

编辑

这是我迄今为止最好的尝试:

    combi = []
    for i in range(len(list_1)):
        for j in range(len(list_1[i])):
            for k in range(len(list_2[i])):
                combi.extend([list_1[i][j],list_2[i][k]])

然而,这并没有让我得到我所希望的。

不确定我是否真的理解您的要求。 如我的帖子所示,部分 output 不一致或丢失。 因此,我试图guess您想从每个列表(一次一个)中进行组合,正如您的标题描述所述。

如果在理解上存在差距,您可以修改示例以满足您的需要。 (这应该非常接近......虽然)

from itertools import product

list_1 = [["A1","A2"],["B1","B2"]] #,["C1","C2"]]   # for simple test, reduce C-lst
list_2 = [["A3","A4"],["B3","B4"]] #,["C3"]]
combs =  []   # set()

for one in list_1:
    for two in list_2:
      
        for p in product(one, two):
            #print(p)      # can comment out
            combs.append(list(p))
               

print(combs)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM