我有两个清单:List(1,1,1) , List(1,0,1)
我想得到以下内容:
在第一个列表中包含 1 并且在相应列表中相同位置包含 0 的每个元素的计数,反之亦然。在上面的示例中,这将是 1 , 0 因为第一个列表在中间位置包含一个 1 而第二个列表在同一位置(中间)包含一个 0。
每个元素的计数,其中 1 在第一个列表中并且 1 也在第二个列表中。在上面的示例中,这是两个,因为每个对应的列表中有两个 1。我可以使用 List 类的 intersect 方法得到它。
我只是在寻找上面第 1 点的答案。我可以使用迭代的方法来计算项目,但有没有更实用的方法?这是整个代码:
class Similarity {
def getSimilarity(number1: List[Int], number2: List[Int]) = {
val num: List[Int] = number1.intersect(number2)
println("P is " + num.length)
}
}
object HelloWorld {
def main(args: Array[String]) {
val s = new Similarity
s.getSimilarity(List(1, 1, 1), List(1, 0, 1))
}
}