用python寫了一個統計用戶資料sql文件中的所用的郵箱的數量,總數600W+,算上屏幕輸出共耗時5min+:
from __future__ import division
from operator import itemgetter
sql = open("www.csdn.net.sql","r+")
d = {}
iCount = 0
for eachLine in sql :
line_list = eachLine.strip().split(" # ")
e_address = line_list[2]
if "@" in e_address :
e_domain = e_address.split("@")[1]
else :
e_domain = e_address
#print e_domain
if e_domain not in d :
d[e_domain] = 1
iCount += 1
else :
d[e_domain] += 1
iCount += 1
print "*" * 80
print "Sum:",str(iCount)
print "*" * 80
l = sorted(d.iteritems(), key=itemgetter(1),reverse=True) # 據說這種對字典值的排序方法效率最高
for eachItem in l :
print eachItem,str(((int(eachItem[1]))/iCount) * 100.0)+"%"
另外,發現了一個不錯的網站,叫OSChina(http://www.oschina.net/),是一個跟開源有關的網站,有很多優秀的成熟的源代碼,讀讀肯定會自己的能力的提高有好處的。
另:Python排序參考:
http://www.cnblogs.com/itech/archive/2011/12/27/2303740.html
http://zuroc.42qu.com/10037539
統計結果截圖: