如果我像这样使用两个for循环,我会得到一个List [List [Int]],但是我怎么能得到一个List [Int]? 我不知道如何只在一个for循环中编写if / else语句,有人可以帮助我吗?
def example: (List[(Int, Int)], Int,Int) => List[Int] ={
(list, p, counter) =>
if (counter >=0)
for(x<-list(i._1); if ( x._1 ==p))yield x._2
for(x<-list(i._1); if ( x._1 !=p))yield example((x._1,x._2+i._2):: Nil,p,counter-1)
else { ....}
}
答案 0 :(得分:0)
首先,按照您所写的,您发布的代码甚至不是有效的定义。如果您有可用的东西,但返回的类型与所需类型不同,请发布该有效代码。
话虽如此,如果您有List[List[Int]]
并想要一个List[Int]
,则该方法为flatten
用法:
scala> val nestedList = List(List(1, 2), List(3, 4), List(5, 6))
nestedList: List[List[Int]] = List(List(1, 2), List(3, 4), List(5, 6))
scala> val flattenedList = nestedList.flatten
flattenedList: List[Int] = List(1, 2, 3, 4, 5, 6)