mbox-short.txtを読み、各メッセージの時間帯別分布を把握するプログラムを作成します。 'From'行から時間を見つけ、コロンを使用して文字列をもう一度分割することで、時間を引き出すことができます。インデックス1の値に基づいて昇順にタプルのリストを並べ替えます。
From [email protected] Sat Jan 5 09:14:16 2008
各時間のカウントを集計したら、以下に示すように、カウントを時間単位で印刷します。 予想される出力:
04 3
06 1
07 1
09 2
10 3
11 6
14 1
15 2
16 4
17 2
18 1
19 1
コード:
fname = raw_input('Enter file name: ')
fhand = open(fname)
c = dict()
for line in fhand:
if not line.startswith('From ') : continue
pieces = line.split()
time = pieces[5]
parts = time.split(':')
hour = parts[0]
c[hour] = c.get(hour,0) + 1
lst = list()
for key in c:
value = c[key]
lst.append((value, key))
lst.sort()
for value, key in lst:
print key, value
私は
06 1 ← Mismatch
07 1
14 1
18 1
19 1
09 2
15 2
17 2
04 3
10 3
16 4
11 6
をあなたの質問のタイトルが巨大に向上させることができました。タイトルだけでは、この質問が他の誰にも将来役立たないことは明らかです。 – byxor
ようこそスタックオーバーフロー!宿題の助けを求めているようです。それ自体に問題はありませんが、これらのことを守ってください(http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions/338845#338845)、それに応じて質問を編集してください。 –