【发布时间】:2013-11-06 15:19:59
【问题描述】:
我是 Scala 的新手,我正在寻找一种方法来做类似的事情
val list = List(1, 0, 1, 2, 3, 1, 2, 0, 1, 2, 0, 3, 2, 0, 1)
mylist.sortWith(_ > _).partition(_ == 1).flatten
问题是 partition() 产生一个列表元组,但我需要一个列表列表。
目标是在不使用其他变量的情况下在一行中完成这项工作,不需要优化。
实现我想要做的事情的肮脏/愚蠢的方式是:
List(mylist.sortWith(_ > _).partition(_ == 1)._1, mylist.sortWith(_ > _).partition(_ == 1)._2).flatten
我也想知道是否可以将 partition() 的输出转换为扁平化
【问题讨论】:
-
所以您想要
List(1, 1, 1, 1, 1, 3, 3, 2, 2, 2, 2, 0, 0, 0, 0)的最终输出?这就是我运行您的“肮脏/愚蠢”方法的原因。 -
是的,但输出并不重要:)
-
模式匹配。见*.com/q/7129849/770361
标签: list scala type-conversion tuples flatten