gpt4 book ai didi

scala - Scala 中的 CSV 矩阵

转载 作者:行者123 更新时间:2023-12-04 16:55:18 27 4
gpt4 key购买 nike

将 MxN 矩阵(M 行,N 列)写入 CSV 文件:

我的第一次尝试使用 map 有效,但创建了对 stringbuffer 的 N 个引用。它还在每行的末尾写了一个不必要的逗号。

def matrix2csv(matrix:List[List[Double]], filename: String ) = {
val pw = new PrintWriter( filename )
val COMMA = ","

matrix.map( row => {
val sbuf = new StringBuffer
row.map( elt => sbuf.append( elt ).append( COMMA ))
pw.println(sbuf)
})
pw.flush
pw.close
}

我的第二次尝试,使用 reduce,也有效,但看起来很笨重:
def matrix2csv(matrix:List[List[Double]], filename: String ) = {
val pw = new PrintWriter( filename )
val COMMA = ","

matrix.map( row => {
val sbuf = new StringBuffer
val last = row.reduce( (a,b)=> {
sbuf.append(a).append(COMMA)
b
})
sbuf.append(last)
pw.println(sbuf)
})
pw.flush
pw.close
}

关于更简洁和惯用的方法的任何建议?谢谢。

最佳答案

您可以轻松获取字符串表示形式:

val csvString = matrix.map{ _.mkString(", ") }.mkString("\n")

然后你只需要将它转储到一个文件中。

注意结束行(此处为 "\n"),它们因平台而异。

关于scala - Scala 中的 CSV 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8053800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com