Python でのアレは Scala でどうやるのリストその1

Python 使いが Scala を使う上で「こんな時どうやるの」を参照するために作ってみる。
ただし、このやり方が 「Scala のコードとしてスマートかどうか」という部分は考慮に入れていないので注意。

リスト処理

Python で関数を使うものは大体メソッドになっている。

やりたいこと Python Scala
インスタンス生成 [1,2,3] List(1,2,3)
map map(func, seq) seq.map(func)
folding reduce(func, seq, init) seq.foldLeft(init)(func) or seq.reduceLeft(func)(init)
filter filter(func, seq) seq.filter(func)
文字列を挟みつつ連結 str.join(seq) seq.mkString(str)
インデックス付きで反復 enumerate(seq) seq.zipWithIndex
zip zip(seq1, seq2) seq1.zip(seq2)
連結 seq1 + seq2 seq1 ++ seq2

map 処理

やりたいこと Python Scala
インスタンス生成 {key1=val1, key2=val2} Map(key1->val1, key2->val2) *1
キーだけのイテレータを取得 dic.iterkeys() dic.keysIterator
キーだけのリストを取得 dic.keys() dic.keysIterator.toList
値だけのイテレータを取得 dic.itervalues() dic.valuesIterator
値だけのリストを取得 dic.values() dic.valuesIterator.toList
キーと値のイテレータを取得 dic.iteritems() dic.iterator
キーと値のリストを取得 dic.items() dic.toList
要素が存在しないときの値を指定して参照 dic.get(key, default) dic.getOrElse(key, default)

*1:x->y というのは二要素のタプルを作るための構文(->演算子?)なので、 Map(("key1", val1), ("key2", val2) ) とも書ける。