我有这个 (Char, Int) pars 的列表(它包含仅具有唯一 Char 值的对)
List(( ,3), (d,1), (e,3), (h,3), (i,1) , (l,3), (o,2), (r,2), (t,1), (w,1))
我需要将此列表分为 2 个 - 一个包含任何具有“d”字符的对,另一个是其余的。
于是我尝试了partition和span,但发现span并没有按预期工作。这是结果(从 scala 工作表复制)
val myPartition = oX.partition(e => e._1 == 'd') > myPartition : (List[(Char, Int)], List[(Char, Int)]) = (List((d,1)),List(( ,3), (e,3), (h,3), (i,1), (l,3), (o,2), (r,2), (t,1), (w,1)))
val mySpan = oX.span(e => e._1 == 'd') > mySpan : (List[(Char, Int)], List[(Char, Int)]) = (List(),List(( ,3), (d,1), (e,3), (h,3), (i,1), (l,3), (o,2), (r,2), (t,1), (w,1)))
我很困惑为什么给定相同的谓词函数分区会给我预期的结果,而跨度给我空列表作为第一个列表,而原始副本作为第二个列表