【发布时间】:2020-07-25 10:44:56
【问题描述】:
我有一些原始测试数据需要拆分为格式图:
Map[String, List[(Int, String, Float)]]
我已经设法以列表的形式读入数据,并将在下面给出一行数据的示例:
Oor Wullie Route (GCU),1:City Chambers:0.75f,2:Sir Chris Hoy Velodrome:3.8f,3:People's Palace:2.7f,4:Riverside Museum:5.4f,5:Botanic Gardens:2.4f,6:GCU:3.4f
以上表示如下:一条Route,一个阶段号:阶段名称:阶段总距离
所以每组 3 个值(即 1:City Chambers:5)都应该添加到地图的 [Int, String, Float] 部分,路线名称是关键。
这是我目前用于读取文件并将其添加到列表的代码:
var mapBuffer: Map[String, List[(Int, String, Float)]] = Map()
val fitnessData = "C:\\Users\\josep\\Desktop\\Coursework\\Coursework\\src\\cw.txt"
val lines = Source.fromFile("C:\\Users\\josep\\Desktop\\Coursework\\Coursework\\src\\cw.txt").getLines.toList
我想编写一个函数来拆分数据并将其添加到地图中,基本上是这样做的:
var key ="Oor Wullie Route (GCU)"
var newList = List((1,"City Chambers",0.75f),(2,"Sir Chris Hoy Velodrome",3.8f),(3,"People's Palace",2.7f),(4,"Riverside Museum",5.4f),(5,"Botanic Gardens",2.4f),(6,"GCU",3.4f))
mapBuffer = mapBuffer ++ Map(key -> newList)
如何将数据添加到所需格式的地图中?
【问题讨论】:
-
您需要检查
mapBuffer中是否已经存在密钥,并将mapBuffer中的列表与新列表连接起来。
标签: list scala dictionary functional-programming