Scala从列表中生成唯一对

Co_42

输入:

val list = List(1, 2, 3, 4)

所需输出:

Iterator((1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4))

此代码有效:

for (cur1 <- 0 until list.size; cur2 <- (cur1 + 1) until list.size)
  yield (list(cur1), list(cur2))

但这似乎不是最佳方法,还有更好的方法吗?

ja

有一个.combinations内置方法

scala> List(1,2,3,4).combinations(2).toList
res0: List[List[Int]] = List(List(1, 2), List(1, 3), List(1, 4), List(2, 3), List(2, 4), List(3, 4))

它返回一个Iterator,但我.toList只是为了打印结果而添加了。如果要以元组形式显示结果,则可以执行以下操作:

scala> List(1,2,3,4).combinations(2).map{ case Seq(x, y) => (x, y) }.toList
res1: List[(Int, Int)] = List((1,2), (1,3), (1,4), (2,3), (2,4), (3,4))

您还提到了唯一性,因此可以将其应用于.distinct输入列表,唯一性不是功能的先决条件,因为.combination不会为您消除重复数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Enlive中生成一对元素的列表?

来自分类Dev

在Wa中生成唯一的Django-Taggit标签列表;

来自分类Dev

在列表中生成2个唯一但随机的元素

来自分类Dev

在列表中生成2个唯一但随机的元素

来自分类Dev

从PHP的范围列表中生成唯一的不重叠范围?

来自分类Dev

休眠:为列表中的同一对象引用生成不同的(唯一的)ID

来自分类Dev

在MS SQL中生成唯一值

来自分类Dev

在配置单元中生成唯一的ID

来自分类Dev

在PHP中生成唯一的ID

来自分类Dev

在LibreOffice Calc中生成唯一编号

来自分类Dev

在 PHP 中生成唯一的用户 ID

来自分类Dev

如何从包含重复项的ID列表中生成唯一ID

来自分类Dev

算法-以唯一对分组列表

来自分类Dev

我需要在另一个列表中生成x个唯一列表

来自分类Dev

实体框架核心一对一关系在SQL Server中生成一对多

来自分类Dev

在SQL中生成一个列表

来自分类Dev

在SQL中生成一个列表

来自分类Dev

如何在Matlab中生成唯一的随机数?

来自分类Dev

在成对的rdd中生成rdd唯一值

来自分类Dev

在Julia中生成唯一的随机数

来自分类Dev

在Laravel 6中生成唯一编号

来自分类Dev

在反应中生成唯一的ID并持续存在

来自分类Dev

在Spark数据框中生成可重现的唯一ID

来自分类Dev

如何在C#中生成唯一的代码?

来自分类Dev

在Java中生成值的唯一随机ArrayList

来自分类Dev

VBA-在代码中生成唯一数字

来自分类Dev

如何从循环中生成唯一的ID

来自分类Dev

如何在PHP中生成唯一范围的数字

来自分类Dev

在neo4j中生成唯一的数字id