我有一个关于按每个列表元素的属性对列表进行分区的问题。
给定一个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
可以包含间隙,但列表列表不应包含任何空列表。