3

各リスト要素のプロパティによってリストを分割することについて質問があります。

List[E]と関数が与えられた場合f(e: E): Int、リストをどのように分割してList[List[E]]、各要素が適用されList[E]たときに同じ値を持つ要素のであるかを確認できますか?f

たとえば、typeEが物理的な変位を表し、fゼロ以上の整数になる変位を測定するとします。

val ms = List(a, b, c, d, e)

f(a) = 1
f(b) = 3
f(c) = 1
f(d) = 4
f(e) = 3

結果のパーティションは次のようになります

List(List(a, c), List(b, e), List(d))

この例は、の値にfギャップを含めることができるが、リストのリストに空のリストを含めるべきではないことを示しています。

4

2 に答える 2

4

リストを関数値でソートする場合:

list.groupBy(f).toList.sortBy(_._1).map(_._2)
于 2012-10-03T20:44:06.220 に答える
2

それらをグループ化するだけです。

val ms = List(a, b, c, d, e)
ms.groupBy(x => f(x)).values
于 2012-10-03T20:41:54.197 に答える