如下筆記是我在 xue.cn 學習羣之數據分析小組所整理分享的心得。相關背景是:我選擇中文詞頻統計案例做爲考察你們python基礎功掌握程度。python
經過《Python讀取文件內容爲字符串的方法》,咱們已經拿到那個很長的字符了。如今咱們須要統計這個字符串中,有哪些字符,每一個字符分別出現了多少次。編程
這個方法至關簡單,掌握《自學是門手藝》第一章就能寫出來。零基礎自學編程,代碼寫成這樣能知足需求,但它逐個逐個計數,比較笨拙。編程語言
rlt = {}
for i in content:
if i in rlt.keys():
rlt[i] += 1
else:
rlt[i] = 1
複製代碼
利用 python 內置函數 count() 來統計每一個字符出現的次數,同時經過if i not in rlt.keys():
確保每一個字符只用統計一次。方法2比1要效率一些。函數
rlt = {}
for i in content:
if i not in rlt.keys():
rlt[i] = content.count(i)
複製代碼
數據分析自學小組成員 jeff 代碼是這麼寫的:post
rlt = {}
for i in content:
rlt.setdefault(i,content.count(i))
複製代碼
這裏有一個你們以前沒看到過、或沒用過的方法 setdefault()
,你若是去搜python setdefault()
拿到它的說明,會發現它必定程度上至關於封裝了方法2。學習
Python 字典 setdefault() 函數和 get()方法 相似, 若是鍵不存在於字典中,將會添加鍵並將值設爲默認值。spa
這裏分享一個小常識是,編程世界裏,一門編程語言會自帶不少封裝好、高效、好用的函數、類、庫等等,你根據本身需求去搜,就會找到它們。是的,方法幾乎老是很是多的。code
做爲零基礎自學編程的人,你剛起步,你能夠不知道 setdefault()
但你所掌握的基礎功,足夠讓你能寫出方法 1 或者 2。字符串
如今你可能會心急,怎麼本身這個不知道,哪一個也沒據說過?——不要緊的,你只要掌握:會拆解、勤搜索、多使用。使用也分兩層,既能夠本身多敲代碼,也應該多讀別人的代碼,琢磨同一個需求的不一樣實現方法,整理成相似這種筆記,而後點滴積累你的牛逼。get