我想從一組列表中的每個值創建一個元組列表。該列表可以打開,但是對於這個例子,我有以下三個字符串列表。如何從一組列表中的每個值創建元組列表
L1: (one, two three)
L2: (a, b, c)
L3: (yes, no)
我想返回一個元組列表,其中每個元組中的元素來自每個列表。在這種情況下,我將有18種組合(3 x 3 x 2)
T1: (one, a, yes)
T2: (one, a, no)
T3: (one, b, yes)
T4: (one, b, no)
T5: (one, c, yes)
T6: (one, c, no)
T7: (two, a, yes)
等等。在這種情況下,我們使用Java。
List<List<String>> list = getInput();
List<List<String> tuples = combinations(list);
其中getInput()返回我的輸入(L1,L2,L3),以及它們的組合創建我的輸出(T1,T2,T3 ......)
它被稱爲[笛卡爾積(http://en.wikipedia.org/wiki/Cartesian_product),和一個類似的問題了[問這裏最近(HTTP:/ /stackoverflow.com/questions/7022500/java-how-to-build-unique-object-tuples-n-dimension)。那裏也有一些很好的答案。 –
啊,當然......如果我在我的問題中使用笛卡兒,我肯定會找到答案 - 這是他們所有人的最佳答案。 – andyczerwonka