格式化输出标量列表

时间:2016-11-23 15:12:22

标签: scala list

目前我可以搜索一个值,比如SK5,它会返回高于SK5的所有值。但是它的格式如下所示返回;

  

列表((SK6,List(2,7,5,9,1,9,8,4,1,7,3,7,8,4,5,5,2,9,   4,4,8,7,9,2,2,7,9,1,6,9)),(SK4,List(2,9,5,7,8,8,6,   6,7,9,0,1,3,1,6,0,0,1,3,8,5,4,0,9,7,1,4,5,2,8)),   (SK8,List(2,8,8,3,1,1,0,8,5,9,0,3,1,6,8,7,9,6,7,7,   0,9,5,2,5,0,2,1,8,6)),(SK9,List(7,1,8,8,4,4,2,2,7,   4,0,6,9,5,5,4,9,1,8,6,3,4,8,2,7,9,7,2,6,6)),   (SK5,List(2,6,8,0,3,5,5,2,5,9,4,5,3,5,7,8,8,2,5,9,   3,8,6,7,8,7,4,1,2,3)))

我想要的是SK6 - 9,SK4 - 8等等

全部捆绑在一起,我如何将其拆分并仅显示列表中的最后一个数字?我以为我已经过滤了这个,但显然不是。 以下是我的代码。 Mapdata已保存为Map(String, List[Int])

  //functionality to find the last tail element, the "Current" stock price
  def findLast(list:List[Int]) = list.last


 //8 - Show Stocks Higher Than (W) THIS ONE THIS ONE THIS ONE
  def handleEight(): Boolean = {
    mnuShowPointsForStockHigher(higherThan2)
    true
  }

  //Returns a list value
  def mnuShowPointsForStockHigher(stock: (String) => List[(String, List[Int])]) = {
    print("Enter Stock > ")
    val data = stock(readLine)
    println(s"${data}")
    //println(s"${data._1}: ${data._2.last}")
  }

 def higherThan2(stock: String): List[(String, List[Int])] = {
    mapdata.toList.sortWith(_._2.last > _._2.last).takeWhile(row => row._2.last > mapdata.get(stock).map(findLast(_)).getOrElse(0))
  }

1 个答案:

答案 0 :(得分:0)

如果您尝试获取每个列表中的最后一个值,则最佳选项将是map + last。对不起,不需要使用展平。我的坏..应该是行:list.map(x => x.last)