第 0004 題:任一個英文的純文字檔案,統計其中的單詞出現的個數
1.建立一個列表,用來存放檔案中的字串
2.使用正則表示式來抓取英文單詞
3.對單詞進行計數統計
from collections import Counter import re def ceate_list(filename): datalist[]=0 with open(filename,'r') as f: for line in f: content=re.sub("\"|.|\."," ",line) datalist.extend(content.strip().split(' ')) return datalist def wc(filename){ print Counter(create_list(filename)) } if __name__="__main__": filename="wonderful.txt" wc(filename)
註釋:
re.sub的功能:
re是regular expression的縮寫,表示正則表示式;sub是substitute的縮寫,表示替換;
re.sub功能:對於輸入的一個字串,利用正則表示式的強大字串處理功能,去實現相對複雜的字串替換處理,然後返回被替換後的字串
re.sub(pattern,repl,string,count=0,flags=0) 前三者為必選:
pattern:正則表示式中的模式字串;
repl:被替換的字串或者函式(被替換的字串是普通的字串,不是pattern)
string:表示被處理被替換的那個原始string字串
Python中的extend()和append()函式:
列表是以類的形式實現的。“建立”列表實際上是將一個類例項化。因此,列表有多種可以操作。
列表可包含任何資料型別的元素,單個列表中的元素無須全為同一個型別。
extend()方法只接受一個列表作為引數,並將該引數的每個元素都新增到原有的列表中。
append()方法向列表的尾部新增一個新的元素。只接受一個引數。
Python strip()函式和 split()函式介紹:
strip函式:
宣告:s為字串,rm為要刪除的字元序列
s.strip(rm) 刪除s字串中開頭、結尾處,位於rm刪除序列的字元;
s.lstrip(rm) 刪除s字串中開頭處,位於rm刪除序列的字元;
s.rstrip(rm )刪除s字串中結尾處,位於rm刪除序列的字元;
注意:當rm為空時,預設為刪除空白符(包括‘\n’,‘\r’,‘ \t’,‘ ’)
split()函式:將字串分隔
按某一個字元分割。如‘ .’;
按某一個字元分割,且分割n次split(‘ .’,1);
split()函式後面還可以加正則表示式,split(‘. ’)[0]-----代表取第一個元素;按反序排列,[::]按正序排列