2016-05-03 74 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的例子。