2016-05-03 99 views
0

按说我有元组的列表:整数元组字符串元组

tuple1: List[(Int, Int)] = List((0,3), (3,6), (6,12), (12,14), (14,15)) 

我怎样才能将其更改为:

tuple1: List[(String, String)] = List((0,3), (3,6), (6,12), (12,14), (14,15)) 

我尝试了以下:

tuple1.unzip match { case(l1, l2) => (l1.toString, l2.toString)} 
res9: (String, String) = (List(0, 3, 6, 12, 14),List(3, 6, 12, 14, 15)) 

tuple1 map(_.toString) 
res5: List[String] = List((0,3), (3,6), (6,12), (12,14), (14,15)) 

两个不是我正在寻找的结果。

回答

4

你很接近你的尝试。只需要结合两者的部分。

tuple1.map { case(l1, l2) => (l1.toString, l2.toString) } 
0

如果您愿意,还可以使用for-yield的另一种方法。

for{ 
    t <- tuple1 
} yield (t._1.toString, t._2.toString) 
res0: List[(String, String)] = List((0,3), (3,6), (6,12), (12,14), (14,15)) 
1

对于这样一个简单的情况下,我不会理会,但shapeless给你map过的元组,见documentation的例子。