scala - 如何从子列表中提取元素?
问题描述
我制作了一个列表来存储一些数据序列,其中每个序列包含三个元素。如何从序列中提取其中一个元素?
我尝试过括号,例如 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) 的成员
解决方案
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
或调用:foldLeft
foreach
scala> alco.map { case (_, temp, _) => temp }
res0: List[String] = List(4%, 6%)
scala> alco.foreach { x => println(x._2) }
4%
6%
推荐阅读
- python - 如何检测日志文件中是否存在csv文件中的字符串?
- python - 如何使用 Python 中的数组选择和排序数据框中的列
- javascript - html面板中的jquery克隆表行
- ruby - 当我只期望一个结果时,我的 jsonpath 表达式返回两个结果
- ag-grid - 在 ag-grid 中,服务器端模型是否支持状态栏?
- python - 数据存储客户端 query.fetch() 抛出错误
- sql - Oracle中的数据透视表?
- java - Math.pow(-27.0,1.0/3) 返回 NaN
- google-analytics - Google Analytics 是否衡量 Foxtel 广告的流量?
- javascript - 用于位置许可警报的 Hybrid Cordova App 回调