首页 > 解决方案 > 如何从子列表中提取元素?

问题描述

我制作了一个列表来存储一些数据序列,其中每个序列包含三个元素。如何从序列中提取其中一个元素?

我尝试过括号,例如 alco(0)(1) 和 get() ,但它们不起作用。

val alco = List(("Light Beer", "4%", "23 OZ"), ("Regular Beer", "6%", "23 OZ"))

val temp = alco(0).get(1)

println(temp)

结果显示:

错误:值 get 不是 (String, String, String) val temp = alco(0).get(1) 的成员

标签: scalalist

解决方案


scala> val alco = List(("Light Beer", "4%", "23 OZ"), ("Regular Beer", "6%", "23 OZ"))
alco: List[(String, String, String)] = List((Light Beer,4%,23 OZ), (Regular Beer,6%,23 OZ))

scala> val (_, temp, _) = alco(0)
temp: String = 4%

scala> val temp = alco(0)._2
temp: String = 4%

请注意,按索引访问 Scala 列表具有O(n)复杂性,n列表的大小在哪里。因此,如果您想遍历它们 - 更喜欢使用map,collect或调用:foldLeftforeach

scala> alco.map { case (_, temp, _) => temp }
res0: List[String] = List(4%, 6%)

scala> alco.foreach { x => println(x._2) }
4%
6%

推荐阅读