1. 程式人生 > >第 0004 題:任一個英文的純文字檔案,統計其中的單詞出現的個數

第 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]-----代表取第一個元素;按反序排列,[::]按正序排列