gpt4 book ai didi

scala - 将过滤器应用于 Scala Map 时,如何检查删除了哪些条目?

转载 作者:行者123 更新时间:2023-12-01 07:37:53 25 4
gpt4 key购买 nike

我正在学习 Scala,有一次我想根据值(而不是键)从 map 中删除条目。我还想知道删除了多少条目 - 我的程序期望应该删除一个条目。
可以通过应用 filterNot 来按值删除条目,好吧——但是我如何验证是否删除了一个条目?

到目前为止,我看到实现这一目标的唯一方法是运行谓词两次——一次用于“计数”方法(计算谓词匹配的频率),然后使用 filterNot 来实际删除条目。

一次性实现这一目标的 Scala 方法是什么?

我发现的唯一其他解决方案是首先使用 filter(...) 来获取要删除的值,然后使用“-”通过它们的键抛出元素 - 但同样,这需要运行两次。

最佳答案

只要您不介意使用已删除的信息创建集合,您就可以使用 partition :

scala> Map(1 -> 1, 2 -> 2, 3 -> 3)
res0: scala.collection.immutable.Map[Int,Int] = Map(1 -> 1, 2 -> 2, 3 -> 3)

scala> res0.partition { case (k, v) => v % 2 == 0 }
res3: (Map(2 -> 2),Map(1 -> 1, 3 -> 3))

关于scala - 将过滤器应用于 Scala Map 时,如何检查删除了哪些条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26402276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com