開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg 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 コメント:
コメントを投稿