2013年11月30日土曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、13.を解いてみる。

9.5(練習問題)、13.

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

import sys

def countBirds(filenames):
    count = {}
    for filename in filenames:
        with open(filename, 'r') as infile:
            for line in infile:
                name = line.strip()
                count[name] = count.get(name, 0) + 1
    return count

def getFreq(count):
    freq = {}
    for (name, times) in count.items():
        if times in freq:
            freq[times].append(name)
        else:
            freq[times] = [name]
    return freq

if __name__ == '__main__':
    filenames = sys.argv[1:]
    count = countBirds(filenames)
    freq = getFreq(count)
    for key in sorted(freq):
        print(key)
        for name in freq[key]:
            print(' {0}'.format(name))

入出力結果(Terminal)

$ cat bird1.txt
b
c
d
e
f
b
c
d
e
b
c
d
b
c
b
$ cat bird2.txt
a
b
c
d
e
a
b
c
d
a
b
c
a
b
a
$ ./sample.py bird1.txt bir2.txt
1
 f
3
 e
5
 a
 d
7
 c
9
 b
$

0 コメント:

コメントを投稿