相关疑难解决方法(0)

从Scala中的List [List [Int]]生成所有可能的组合

鉴于以下列表:

List(List(1,2,3), List(4,5))
Run Code Online (Sandbox Code Playgroud)

我想生成所有可能的组合.使用yield,可以按如下方式完成:

scala> for (x <- l.head; y <- l.last) yield (x,y)
res17: List[(Int, Int)] = List((1,4), (1,5), (2,4), (2,5), (3,4), (3,5))
Run Code Online (Sandbox Code Playgroud)

但我遇到的问题是List [List [Int]]没有修复; 它可以增大和缩小尺寸,所以我永远不知道for我需要提前多少个循环.我想要的是能够将该列表传递给一个函数,该函数将动态生成组合而不管我拥有的列表数量,因此:

def generator (x : List[List[Int]) : List[List[Int]]
Run Code Online (Sandbox Code Playgroud)

是否有可以执行此操作的内置库函数.如果不是我该怎么做呢.任何指针和提示都会很棒.

更新:

@DNA的答案用以下(不是那么大的)嵌套List结构来打击堆:

List(

    List(0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, …
Run Code Online (Sandbox Code Playgroud)

scala

7
推荐指数
1
解决办法
3830
查看次数

标签 统计

scala ×1