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) |