如何获得多个列表的所有可能组合? [复制]

Posted

技术标签:

【中文标题】如何获得多个列表的所有可能组合? [复制]【英文标题】:How to get all the possible combinations of multiple lists? [duplicate] 【发布时间】:2021-05-10 11:10:36 【问题描述】:

我有多个这样的列表(可以是任何长度和数字):

['a1', 'a2']
['b1', 'b2', 'b3']

我不知道如何获得这些列表的所有可能组合, 想要的结果:

[
  ['a1', 'b1'],
  ['a1', 'b2'],
  ['a1', 'b3'],
  ['a2', 'b1'],
  ['a2', 'b2'],
  ['a2', 'b3']
]

有人对此有什么建议吗(任何语言都可以)?我尝试使用递归但没有运气。

【问题讨论】:

在python中:***.com/questions/44176008/… [[a, b] for a in ['a1', 'a2'] for b in ['b1', 'b2', 'b3']] 什么语言?您标记了 4 个不同的。 list(itertools.product(l1,l2)) 这能回答你的问题吗? How to get all combination from multiple lists? 【参考方案1】:

如果我理解正确(我不确定)但在 java 中你应该使用 Set 来消除重复,那么:

    List<String> list = Arrays.asList("a1", "a2");

    List<String> anotherList = Arrays.asList("b1", "b2", "b3");

    Set<String> set = new HashSet<>(list);
    Set<String> anotherSet = new HashSet<>(anotherList);

    set.stream()
        .forEach(setElement -> anotherSet.stream()
            .forEach(anotherSetElement -> System.out.println(setElement + " " + anotherSetElement)));

【讨论】:

这适用于 2 个数组,但我可以有任意数量的数组

以上是关于如何获得多个列表的所有可能组合? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

获得所有组合的最有效方法是啥? [复制]

PHP:如何获得一维数组的所有可能组合? [复制]

如何获得n个二进制值的所有组合? [复制]

如何获得子集的所有可能组合?

Presto SQL - 如何获得数组的所有可能组合?

如何在C#中获得组合框的所有选定值