2012-10-18 82 views
6

什麼是將List[String, Int] A轉換爲List[Int, String]的最佳方法B.我想使用map函數將通過我的列表A中的所有項目進行迭代,然後返回一個新的B名單但每當我在申請列表中的地圖功能,它抱怨錯誤的參數數目Scala-如何轉換類型爲(A,B)的元組列表爲類型(B,A)使用地圖

val listA:List[(String, Int)] = List(("graduates", 20), ("teachers", 10), ("students", 300)) 
val listB:List[(Int, String)] = listA.map((x:String, y:Int) => y, x) 

有什麼建議?謝謝

回答

7

您需要使用模式匹配來獲取一對元素。我發誓,這樣的問題被問剛剛在幾天前....

listA.map{case (a,b) => (b,a)} 
+1

+1:讓 - 菲利普的回答給說是最好的(最短,最高效)的方式來完成這項工作,但這個答案給了linuxlewis失蹤的線索,瞭解失敗的嘗試失敗的原因。 – AmigoNico

+0

歡呼金,在我的搜索沒有抓住早先的問題 – cduggan

17

如何:

val listB = listA.map(_.swap) 
相關問題