俺とプログラミング

某IT企業でエンジニアをしてます。このブログではプログラミングに関わることを幅広く発信します。

Scalaのリスト処理でテキストファイルの単語数をカウントする (with Python)

Scalaでテキストファイルの中でスペース区切りになった単語の数を数える方法について紹介します。Scalaスクリプトファイルとしても実行できるので、便利です。

Scala

import scala.io.Source

val filename = "text.txt"
val wordCount = Source. 
  fromFile(filename).        /* ファイルへの参照 */
  getLines.                  /* 改行された文字列のイテレータを得る */
  toList.                    /* イテレータをリストに変換する */
  map(_.split(" ").length).  /* リスト中の文字列をスペースで分割し、その長さにmapする */
  sum                        /* Int型のリストの合計が単語数になっている */

Python

参考までに同じことをPythonでやる方法も載せておきます。演算の順番がScalaと完全に逆なのは面白いですね。

filename = "text.txt"
wordCount = sum(map(lambda s: len(s.split(" ")), 
                    open(filename).readlines()))

Scalaスケーラブルプログラミング第2版
初めてのPython 第3版

Copyright © 2016 ttlg All Rights Reserved.