【发布时间】:2017-04-08 15:10:31
【问题描述】:
我有一个值列表,可能是None
val list = List(("apples",1), ("oranges",3), ("avocado",4), None, ("pears",10))
我怎样才能把它变成像这样的地图:
Map("apples"->1, "oranges"->3, "avocado"->4, "pears"->10)
跳过空元素?
我不能使用toMap 到list,因为它给了我错误:
错误:无法证明 Option[(String, Int)] <: u>
我在想这样的事情:
val m = list.map(x => x match{case Some(x) => x._1->x._2
case None => None})
但显然我错过了一些东西:(
【问题讨论】:
-
filter它。map发送到tuple。致电toMap? -
将它映射到一个元组,这不是我需要的。我无法调用 toMap(我更新了问题以提供有关此问题的更多见解)。
filter实际上是个好主意。 :) 我试试看 -
你能举个例子吗?
-
问题是 List 类型是 Any 而不是 (String, Int) 或 Option[(String, Int)]。首先确保类型正确。你不能把元组变成 Some 吗?然后 flatten 可能会起作用。
标签: scala