Scala - 列表列表中的两个列表

时间:2013-05-07 15:52:07

标签: scala functional-programming

去年我对标准ML有相当多的经验,但我在大约10个月内没有做过任何真正的函数式编程。现在我正在使用Scala,我在编写编译器时遇到了在标准ML中广泛使用的操作(尽管公平地说,这种方法可能不是库方法)。

基本上,我有两个清单:

List("a","b","c")
List(1,2,3)

我想要一个操作,它会给我一个像这样的元组列表:

List(("a",1), ("b",2), ("c",3))

我可以使用标准的Scala函数来获得此结果吗? (我认为我们称它为标准ML中的zip函数,但在我搜索Scala zip函数时,这似乎指的是不同的东西。)

1 个答案:

答案 0 :(得分:42)

你是对的,你可以使用zip:

val a = List("a","b","c")
// a: List[String] = List(a, b, c)

val b = List(1,2,3)
// b: List[Int] = List(1, 2, 3)

a zip b  // beautified a.zip(b) 
//res0: List[(String, Int)] = List((a,1), (b,2), (c,3))