2016-11-29 59 views
2

好吧,所以iv'e大约一个小时的搜索完成后找不到任何实际的方法来获取元组索引列表IE val e = List((5,10),(10,13),(30,37)) 没有使用可变列表我想创建一个新的基于旧的列表...但是在这个新的列表,而不是元组我想要所有的2个值之间的整数。 I.E上述列表=>List(6,7,8,9,11,12,31,32,33,34,35,36)List [(Int,Int)]列表[Int] - 寻求建议

任何帮助将不胜感激。

TL:DR元组列表[Int,Int]到新值列表中,其中两个元素到未被元素化成整数。

+0

http://www.scala-lang.org/api/current/ scala/collection/immutable/List.html – Pavel

回答

8
scala> val e = List((5,10),(10,13),(30,37)) 
e: List[(Int, Int)] = List((5,10), (10,13), (30,37)) 

scala> e.flatMap(t => t._1+1 until t._2) 
res1: List[Int] = List(6, 7, 8, 9, 11, 12, 31, 32, 33, 34, 35, 36) 
+0

非常感谢这么多人。工作。 – Gizmox

+0

最后一件事,如果我想要返回所有数字+数字本身,该怎么办?IE(5,10)将是5,6,7,8,9,10而不仅仅是6,7,8,9 – Gizmox

+0

'e。 flatMap(t => t._1到t._2)' –

4

可以使用until每对输入序列中创建一个Range,并使用flatMap把它们结合起来:

e.flatMap { case (le, ue) => (le + 1).until(ue) } 
相关问题