Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将scala列表转换为列表列表_Scala - Fatal编程技术网

如何将scala列表转换为列表列表

如何将scala列表转换为列表列表,scala,Scala,下面是我的scala列表 List((1409497202065,0.533), (1411804719,0.533), (1411804735,0.533), (1411811091,0.0)) 现在,我应该如何转换上面的列表以获得以下输出 List(List(1409497202065,0.533),List(1411804719,0.533), List(1411804735,0.533), List(1411811091,0.0)) 试试这个: myList.map(_.produc

下面是我的scala列表

List((1409497202065,0.533), (1411804719,0.533), (1411804735,0.533), (1411811091,0.0))
现在,我应该如何转换上面的列表以获得以下输出

List(List(1409497202065,0.533),List(1411804719,0.533), List(1411804735,0.533), List(1411811091,0.0))
试试这个:

myList.map(_.productIterator.toList) 

scala> val myList = List((14,0.533), (14118,0.533), (1735,0.533), (1411,0.0))
myList: List[(Int, Double)] = List((14,0.533), (14118,0.533), (1735,0.533), (1411,0.0))

scala> myList.map(_.productIterator.toList)
res22: List[List[Any]] = List(List(14, 0.533), List(14118, 0.533), List(1735, 0.533),     List(1411, 0.0))
productIterator.toList将元组转换为列表,但将类型更改为Any,因此,如果希望在JSON中序列化,必须:

myList.map(_.productIterator.map(_.toString).toList)
如果元组中的类型不一致,则可能需要库中的异构列表

如果您只希望列表中有一个字符串:

鉴于lst是前面提到的列表,您可以像这样直接映射它:

lst.map {
  case (a, b) => List(a, b)
  case _ => Nil // just in case you got some data that doesn't fit
}
这将生成一个如下所示的列表[List[Double]:

List(List(1409497202065.0,0.533),List(1411804719.0,0.533), List(1411804735.0,0.533), List(1411811091.0,0.0))
上述系统的美妙之处在于,它可以无限扩展;因为总是可以向匹配块添加更多案例


PS:列表中的第一个数字太大而不能是整数,这可以通过使用字符串BigNITS、long或双倍

< P>来确定简单性和可读性,考虑这一点对于Duple、

给定列表A的理解。
for ( (x,y) <- a ) yield List(x,y)

这也适用于可能为空的双工列表。

myList.mapList?它创建如下列表List1409497202065,0.533,List1411804719,0.533,List1411804735,0.533,List1411811091,0.0Hi-Neu它工作正常,但有一个问题,当我在播放框架中将上面的列表解析为json时,找不到类型列表的json序列化程序[list[Long,Float]]我把Json.toJsonconvert转换成下面的形式,我认为对于长值,它可能不会解析,它应该如何在jsonI中解析我认为你应该编辑你的问题,我看不到Json功能,我也不知道如何回答这个问题,目前还不清楚你在问什么。也许你应该把它重命名为如何将scala的元组列表转换为列表列表。我认为以防万一,case是多余的,因为lst是list[Double,Double]类型,所以它不能包含任何非双元组对的内容。然后,我们可以把它写成一行字:@VladimirMatveev我喜欢掩盖我的底细;它包含的实际上是长的,双精度的,因为第一个数字不包含任何小数points@VladimirMatveev这只是因为我把它加进去,让它们都是双打;如果你看原始帖子,你会发现没有小数点
for ( (x,y) <- a ) yield List(x,y)