gpt4 book ai didi

scala - 用另一个列表中的单词过滤一个列表中的单词

转载 作者:行者123 更新时间:2023-12-05 01:15:44 26 4
gpt4 key购买 nike

我是一个相对较新的程序员,通过 udemy 类(class)学习 Scala 和函数式编程。

我正在寻求根据另一个字符串列表过滤字符串列表。我想减少第一个列表,这样当我打印出来时,它只包含单词 - “rob”,“learns”,“scala”

这是我正在使用的代码:

val list1:Array[String] = Array("rob","you", "to","learns", "your", "the","scala", "a")

val badWords:Array[String] = Array("you", "to", "your", "the", "a")

val list2 = list1.map(x => badWords.map(badWord => list1.filter(word => word != badWord)))

for (word <- list2) {
println(word)
}


我的逻辑是,对于 list1 中的每个单词,我然后尝试将每个 badWord 元素与当前 list1 项目进行比较,以确定是否应该对其进行过滤。

我已经通过硬编码成功地运行了我想要过滤的内容,例如 val list2 = list1.filter(_ != "to") .显然,我想赋予它缩放的能力,所以我想学习如何配对过滤器和映射函数(如果这是正确的方法)。

提前致谢,如果我应该提供更多信息或上下文,请告诉我。

最佳答案

您可以为此使用一个非常简单的代码段:

list1.filter(!badWords.contains(_))

这将删除同样在 badWords 列表中的所有单词。我不确定这是否适用于数组,所以我建议改用列表。

例子:
val words = List("Hello", "Hello", "World")
val badWords = List("Hello")
val filteredWords = words.filter(!badWords.contains(_))

关于scala - 用另一个列表中的单词过滤一个列表中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42282599/

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