Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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_K Means - Fatal编程技术网

Scala 如何将列表转换为非列表?

Scala 如何将列表转换为非列表?,scala,k-means,Scala,K Means,我想“清除”列表,输出如下 (5,36,5,36,0.434, 0.36, 0.392, 0.37) (1,28,1,28,0.457, 0.588, 0.66, 0.478, 0.358) (1,41,1,41,0.381, 0.289, 0.433) (5,37,5,37,0.525) (5,36,5,36,List(0.434, 0.36, 0.392, 0.37)) (1,28,1,28,List(0.457, 0.588, 0.66, 0.478, 0.358)) (1,41,1,4

我想“清除”列表,输出如下

(5,36,5,36,0.434, 0.36, 0.392, 0.37)
(1,28,1,28,0.457, 0.588, 0.66, 0.478, 0.358)
(1,41,1,41,0.381, 0.289, 0.433)
(5,37,5,37,0.525)
(5,36,5,36,List(0.434, 0.36, 0.392, 0.37))
(1,28,1,28,List(0.457, 0.588, 0.66, 0.478, 0.358))
(1,41,1,41,List(0.381, 0.289, 0.433))
(5,37,5,37,List(0.525))
现在我有这样的输出

(5,36,5,36,0.434, 0.36, 0.392, 0.37)
(1,28,1,28,0.457, 0.588, 0.66, 0.478, 0.358)
(1,41,1,41,0.381, 0.289, 0.433)
(5,37,5,37,0.525)
(5,36,5,36,List(0.434, 0.36, 0.392, 0.37))
(1,28,1,28,List(0.457, 0.588, 0.66, 0.478, 0.358))
(1,41,1,41,List(0.381, 0.289, 0.433))
(5,37,5,37,List(0.525))
我的代码是

val NEWMAPPINGFILE = pFile.map(_.split(",")).map
    {
      baris =>
        (
          baris(0).toInt,
          baris(1).toInt,
          baris(2).toInt,
          baris(3).toInt,
          vektorASCII(baris(4).split("@").toList)
        )
    }.foreach(println)

def vektorASCII(pArgument:List[String]) =
  {
    pArgument.map
    {
      _.map
      {
        _.toByte.toInt
      }.sum.toDouble / 1000
    }
  }
知道吗,我怎么做?有可能吗?任何参考或链接或教程,都会有帮助。。。 非常感谢

这应该行得通:

(5,36,5,36,List(0.434, 0.36, 0.392, 0.37)).productIterator.toList.map(
     x => x match {
      case ls: List[Double] => ls.mkString(",") 
      case _ => x
     }
) 

只需添加很少的代码

vektorASCII(baris(4).split("@").toList).mkString(",")
输出与我想要的一样:

(1,28,1,28,0.457,0.588,0.66,0.478,0.358)
(5,36,5,36,0.434,0.36,0.392,0.37)
(1,41,1,41,0.381,0.289,0.433)
(5,37,5,37,0.525)

谢谢大家!

你能告诉我们你想要的函数类型吗?已经解决了,但是谢谢你@Samar先生你能帮助她或他吗,因为我和她或他一样遇到了同样的问题。。。谢谢你,先生