題目來自:Python 練習冊章喉。任一英文的純文本文件,統(tǒng)計其中的單詞出現個數身坐。查看更多見:iii.run
鋪墊工作
這一期的鋪墊工作比較多秸脱,所以單獨寫了一篇文章,詳見 Python正則表達式
正文部分
題目內容
任一個英文的純文本文件部蛇,統(tǒng)計其中的單詞出現的個數摊唇。
參考英文:
If you are looking for someone you can pour out your love to, let me suggest the empowered woman. The empowered woman knows what she wants, knows how to get it, knows how to live fully, and she knows how to love you back without needing anyone’s approval or recognition. An empowered woman is unarguably one of the most magnificent beings you will ever come in contact with. Read on and find 10 reason why you should absolutely love and embrace the empowered women in your life! .
1. She knows how to love you in returnIt is difficult to give what you don’t have. It is impossible to love someone and feel fulfilled when they can’t love you in return because they don’t love themselves. This will never happen to you when you love an empowered woman. She loves herself (not in a narcissistic manner). In turn, she appreciates who you are and loves you in return. She will love you just like you deserve to be loved.
2. She will inspire youWhen life puts you down and you are at the end of your rope, the empowered woman will be there to see you through. Her drive, enthusiasm and (at times) hopeless optimism will inspire you to carry on despite the obstacles you face.
3. She is not afraid of failureWhile many out there are thoroughly terrified of failure, the empowered woman understands that failures are simply stepping stones in life. How can you not love someone that is thoroughly unafraid to try, fail, and give it a shot all over again?!
4. She is all about the legacyWhile most people are focused on the car, the house, the job, and corner office; the empowered woman is focused on leaving a legacy that will inspire others and change the world. The empowered woman is focused on empowering others to maximize their potential and fulfill their purpose. She is all about inspiring others to look beyond themselves and live a life of service to others.
5. She can laugh at her mistakes……and learn from them as well! She understands mistakes are part of the journey. The empowered woman can laugh and learn from her mistakes to ensure they never happen again.
6. She can be vulnerableThe empowered woman understands there is no debt in relationships without vulnerability. Although she is emotionally strong, she is willing to laugh and cry with you because all of these emotions are an essential part of life.
7. She can speak her mindWhile everyone else is too concerned with what others may think or say, the empowered woman is not afraid to speak her mind. She understands that her value comes from within, not from what others say or think about her.
8. She knows when to remain quietShe lives by Abe Lincoln’s words, “Better to remain silent and be thought a fool, than to speak out and remove all doubt.”
9. She knows how to have funWhether it is at the symphony or at a ball game, the empowered woman understands life is made up of experiences with people – not the places you go. She is able to live in the moment and enjoy it fully without being concerned for the future. After all, who’s got a guaranteed future?
10. She is not afraid of changeWhile most people rather continue on living unfulfilled lives as long as their comfort zone remains intact, the empowered woman is all about embracing change. She understands growth cannot happen without change. She understands that change is the gift life offers you to choose your destiny. Therefore, she is not afraid of change because it is her stepping stone towards success.
下載鏈接
將文件下載到python的工作路徑里去,如果不知道哪里是工作路徑涯鲁,輸入
import os
#獲取當前工作目錄
os.getcwd()
#更改當前工作目錄
os.chdir('d:\')
os.getcwd()
參考代碼
每一步我都盡量附帶上了解釋
# coding=utf-8
from collections import defaultdict
import re
# 替換除了n't這類連字符外的所有非單詞字符和數字字符
def replace(s):
if s.group(1) == 'n\'t':
return s.group(1)
return ' '
def cal(filename='203305485.txt'):
# 使用lambda來定義簡單的函數
dic = defaultdict(lambda: 0)#dic = defaultdict(int)也可以
with open(filename, 'r') as f:
data = f.read()
# 全部變?yōu)樾懽帜? data = data.lower()
# 替換除了n't這類連字符外的所有非單詞字符和數字字符
data = re.sub(r'(n[\']t)|([\W\d])', replace, data)
datalist = re.split(r'[\s\n]+', data)
for item in datalist:
dic[item] += 1
del dic['']
return dic
if __name__ == '__main__':
dic = cal()
for key, val in dic.items():
print('%15s ----> %3s' % (key,val))
運行結果如下:
結果
增加排序函數
代碼有參考 《利用python進行數據分析》
def top_counts(dic, n=10):
value_key_pairs = [(count, tz) for tz, count in dic.items()]
value_key_pairs.sort()
return value_key_pairs[-n:]
top_counts(dic)
運行結果如下:
結果
可以看出巷查,人們最喜歡用的詞是定冠詞the,下來是介詞to.......
補充
最近發(fā)現collections模塊的Counter類 抹腿,
導入語句是:from collections import Counter
岛请,作用是:定義一個list數組,求數組中每個元素出現的次數
修改之后代碼量要少很多幢踏,而且可以直接排列好順序~
# coding=utf-8
import re
from collections import Counter
def cal(filename='203305485.txt'):
with open(filename, 'r') as f:
data = f.read()
data = data.lower()
# 替換除了n't這類連字符外的所有非單詞字符和數字字符
datalist = re.split(r'[\s\n]+', data)
return Counter(datalist).most_common()
if __name__ == '__main__':
dic = cal()
for i in range(len(dic)):
print('%15s ----> %3s' % (dic[i][0],dic[i][1]))
代碼看起來行云流水髓需,舒服多了许师。當然結論是一樣的房蝉,人們還是比較喜歡說 the , you~
修改后
以上~