沒幾行程式寫了快一小時
#開檔
import urllib
handle = urllib.urlopen('https://raw.githubusercontent.com/chio-nzgft/python-data/master/mbox-short.txt')
#設定 dict 也就是x 為字典
x=dict()
#一行一行讀檔
for line in handle:
#剔除 "From: "開頭的那行
#抓出 "From"開頭的那行
if line.startswith("From") and not line.startswith("From:"):
#切割那行成多個字串
#將切割出的第"1" 個字串放到 y (pythen 第一個字串是 "0")
y=line.split()[1]
#如x是新建的就放index 為 0 再加 1
#如x是不是新建的就將 index 的值再加 1
x[y]=x.get(y,0)+1
#宣告None ...將用於判斷是否第一個
bigC=None
#將 x dict 一個一個讀出成 字串及index
for w,c in x.items():
#判斷 是否是第一個(None) 是就將數值放入
#找出最大的index
if bigC is None or c>bigC:
bigC=c
bigW=w
#印出最大的index 及其字串
print bigW,bigC
第一版
handle = open("mbox-short.txt")
lst1=list()
lst2=list()
for line in handle:
if line.startswith("From:"):
continue
if line.startswith("From"):
x=line.split()
y=x[-2:-1]
z=y[0]
lst1.append((z[0:2],1))
lst1.sort()
count=0
for k,v in lst1:
if count>0:
(kr,vr)=lst2[count-1]
if count==0 or k != kr:
count=count+1
lst2.append((k,v))
continue
else:
lst2[-1]=(k,vr+1)
for k,v in lst2:
print k,v
第二版 發現 python 越寫越短 !@#$%
handle = open("mbox-short.txt")
counts=dict()
lst=list()
for line in handle:
if line.startswith("From:"):
continue
if line.startswith("From"):
z=line.split()[-2:-1][0]
counts[z[0:2]]=counts.get(z[0:2],0)+1
for k,v in counts.items():
lst.append((k,v))
lst.sort()
for k,v in lst:
print k,v
留言列表