2014-03-03 44 views
0

我正在學習Scala。我正在運行一個我想要做的例子。Scala-構建3個成員的元組的集合

我想做3個成員的元組的集合。

假設我有一個列表。

val test= List("How","long","are","we","dog","dog") 

期望的結果:(字,頻率,位置)

Map(("How",1,1), ("long",1,2), ("are",1,3), ("we",1,4) ("dog",2,5)) 

我無法找到一個方法來做到這一點:

test.collect{ case (key, v, k) => (key,indexOf(k),freq)} 
+0

爲什麼Python 標籤? –

回答

0

不知道你的位置是什麼意思,但這裏有些東西可以幫助你:

scala> val test = List("How","long","are","we","dog","dog") 
test: List[String] = List(How, long, are, we, dog, dog) 

scala> test.groupBy(identity).mapValues(_.size).toSeq.sortBy(_._2) 
res0: Seq[(String, Int)] = ArrayBuffer((are,1), (How,1), (long,1), (we,1), (dog,2)) 
+0

我的主要問題是:如何使用地圖或其他任何方式製作3個成員(x,y,z)的連音符,其餘我可以設法做 – user3001937

+0

@ user3001937我添加的內容應該讓你得到你想要的 –

+0

@ user3001937你只是返回一個新的元組:'test.map(t =>(t,t,t))'。 –