比方说,我有一个看起来像这样3元组序列:变换元组序列的列表在斯卡拉
Seq("m1" -> 1, "m2" -> 2)
Seq("m3" -> 3, "m4" -> 4)
Seq("m5" -> 5, "m2" -> 6)
我要地图对这些并返回看起来像下面的3个新的记录:
Seq("m1" -> Some(1), "m2" -> Some(2), "m3" -> None, "m4" -> None, "m5" -> None)
Seq("m1" -> None, "m2" -> None, "m3" -> Some(3), "m4" -> Some(4), "m5" -> None)
Seq("m1" -> None, "m2" -> Some(6), "m3" -> None, "m4" -> None, "m5" -> Some(5))
,我正在寻找新的集合包含了不同的一组基础上,相应的原始序列是否不包含元组从最初的名单中Some(v)
或None
键和值的关键。
我设法从原来的列表中拔出钥匙:
case class SiteReading(val site: String, val measures: Seq[(String, Double)])
val xs = getSomeSiteReadingsFromSomewhere()
val keys = xs.flatMap(_.measures.map(t => t._1)).distinct
我现在正计划通过观察两个电流值和一套独特的再次经历整个列表,产生一个新的列表键。我想知道在这个集合框架中是否有一些漂亮的东西可以让它变得更清洁,更容易处理?也许是免费的?
啊... ..差异这就是我一直在寻找对于。我确实有另一个想法可能会更好,不确定,我可能会尝试。对于每一行创建的钥匙,地图一个地图无(M1 - >无,2 - >无,等等),然后简单地从原来的添加项目。 – andyczerwonka
另外,你调用'toSet'而不是'distinct'。有特别的原因吗? – andyczerwonka
我也在下面使用我在上面评论中提到的想法回答了它。 – andyczerwonka