Scala Seq上的笛卡尔连接与自身相对?

Scala Seq上的笛卡尔连接与自身相对?,scala,Scala,给定 给予 val numbers = Seq(1,2,3) numbers.combinations(2).toList 不是获取成对组合,而是获取顺序的函数的名称是什么?组合 e、 g 列表(1,21,3 2,12,3 3,13,2)一个简单的方法是将for循环用作 res2: List[Seq[Int]] = List(List(1, 2), List(1, 3), List(2, 3)) 这将产生所有预期的对,但不是按照您请求的顺序 scala> val numbers = S

给定

给予

val numbers = Seq(1,2,3)
numbers.combinations(2).toList
不是获取成对组合,而是获取顺序的函数的名称是什么?组合

e、 g

列表(
1,2
1,3
2,1
2,3

3,1
3,2

一个简单的方法是将for循环用作

res2: List[Seq[Int]] = List(List(1, 2), List(1, 3), List(2, 3))

这将产生所有预期的对,但不是按照您请求的顺序

scala> val numbers = Seq(1,2,3)
//numbers: Seq[Int] = List(1, 2, 3)

scala> numbers.permutations.map(list => (list(0), list(1))).toSet.toList
//res0: List[(Int, Int)] = List((3,1), (3,2), (1,3), (2,3), (1,2), (2,1))

你希望(1,1)、(2,2)等成为组合的一部分吗?1,1不,我不希望它与自身匹配,但是顺序很重要。所以(1,2)和(2,1)不一样,所以两者都应该列出来。我知道我使用的术语不正确,但我不知道正确的名称。我被卡住了。@RyanTheLeach我已经更新了我的答案,请看一看
scala> val numbers = Seq(1,2,3)
//numbers: Seq[Int] = List(1, 2, 3)

scala> numbers.permutations.map(list => (list(0), list(1))).toSet.toList
//res0: List[(Int, Int)] = List((3,1), (3,2), (1,3), (2,3), (1,2), (2,1))
numbers.combinations(2).flatMap(p => List(p,p.reverse)).toList