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先生你能帮助她或他吗,因为我和她或他一样遇到了同样的问题。。。谢谢你,先生