簡體   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