【发布时间】:2019-10-01 12:58:43
【问题描述】:
我有清单说 -
List("aa","1","bb","2","cc","3","dd","4")
如何制作具有偶数和奇数位置的元组列表:
(aa,1),(bb,2),(cc,3),(dd,4)
【问题讨论】:
标签: scala collections immutability
我有清单说 -
List("aa","1","bb","2","cc","3","dd","4")
如何制作具有偶数和奇数位置的元组列表:
(aa,1),(bb,2),(cc,3),(dd,4)
【问题讨论】:
标签: scala collections immutability
希望它会有所帮助。
val list = List("aa","1","bb","2","cc","3","dd","4")
val tuple =
list.grouped(2).map { e =>
(e.head,e.last)
}.toList
【讨论】:
toList之前map我们只需要迭代一次,所以list.grouped(2).map(...).toList而不是list.grouped(2).toList.map(...),因为grouped返回一个Iterator。
我们应该考虑大小奇数列表的情况,例如List("aa","1","bb","2","cc","3","dd"):
List((aa,1), (bb,2), (cc,3), (dd,dd))吗?List((aa,1), (bb,2), (cc,3))?Option?这里是一个返回Option[List(String, String)] 以指示错误情况的示例:
def maybeGrouped(list: List[String]): Option[List[(String, String)]] =
Try(
list
.sliding(2, 2)
.map { case List(a,b) => (a, b) }
.toList
).toOption
【讨论】:
sliding(2, 2) 与grouped(2) 相同)。
(dd,dd) 和grouped。