我有一个Scala列表,其中包含一些重复的数字。我想计算一个特定数字重复出现的次数。例如:
val list = List(1,2,3,3,4,2,8,4,3,3,5)
val repeats = list.takeWhile(_ == List(3,3)).size
Run Code Online (Sandbox Code Playgroud)
值repeats将相等2。
显然,以上内容是伪代码,由于表示整数,takeWhile因此找不到两个重复的3s _。我尝试将两者混合takeWhile,take(2)但收效甚微。我还从“ 如何在Scala列表中查找可重复元素的数量”中引用了代码,但看来作者正在寻求实现不同的目标。
谢谢你的帮助。
在这种情况下,它将起作用:
val repeats = list.sliding(2).count(_.forall(_ == 3))
Run Code Online (Sandbox Code Playgroud)
slide(2)方法为您提供元素和后继元素列表的迭代器,然后我们仅计算这两个元素等于3的位置。
问题是它是否为List(3,3,3)创建正确的结果?您要重复两次还是仅重复一次。
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |