Python入門案例之找出文件中出現(xiàn)次數(shù)最多的10個(gè)單詞
最近有點(diǎn)需求,在看python的入門基礎(chǔ),看完入門基礎(chǔ)之后,跟著練習(xí),找到文件中出現(xiàn)次數(shù)最多的10個(gè)單詞,以此熟悉語法。
語法概要
mac電腦命令行輸入python3
,回車可以執(zhí)行語句,exit()
退出 python3 xx.py
可以執(zhí)行文件。
- 初始賦值,一般用
None
- 聲明變量不需要任何多余,沒有
var
/const
巴拉巴拉 - 語法用
:
表示一起,縮進(jìn)
表示嵌套關(guān)系 - 字典就是對象,用
dict()
新建,注意dict({'a':1})
必須要用引號括起來鍵 - 字典獲取值的時(shí)候,鍵必須存在不然會報(bào)錯(cuò),一般用
xxDict.get('a',0)
來獲取,這樣沒有就賦值0,有就獲取 - 列表就是數(shù)組,用
list()
新建,注意不能獲取超過list長度的索引,如果取局部的話xxList[0:10]
這樣就行 - 元組,在js中沒有,雖然ts中有,元組類似列表,但不能編輯,表示為
(1,2)
,如果你的列表不需要編輯,就可以用元組替換 - sorted可以排序的方法,排序數(shù)組、對象的key、元組,通常排序?qū)ο蟮臅r(shí)候,如果需要排序value的話,可以用
sorted(([(v,k) for (k,v) in xxDict.items()]))
快速得到排序后的元組列表,從大到小的話,第二參數(shù)加上reverse=True
- 打開文件
open(filepath)
,但返回值不是字符串,需要for line in open(filepath)
,拿到每行的文本 - 字符串變成數(shù)組,用
split
,默認(rèn)分隔符是空格 try: expect:
關(guān)鍵語句,記得捕獲錯(cuò)誤,需要的話退出程序quit()
代碼
# 本文件是獲取 任意文件里出現(xiàn)次數(shù)前10的word # 借此學(xué)習(xí)python的簡單數(shù)據(jù)結(jié)構(gòu) # python3 xx.py 執(zhí)行就可以 filename = input('文件的路徑:') # 這里用戶輸入的文件路徑可能打不開,所以try下,如果出錯(cuò),程序退出 try: # 打開文件,獲取文件手柄 handle = open(filename) except: print('File Cannot be opened',filename) quit() countDict = dict() # 遍歷文件的每行,line就是每行的字符串 for line in handle: # 空格為分隔符,得到每行的單詞列表 words = line.split() # 遍歷每行的單詞列表,word是每個(gè)單詞 for word in words: # 此行相當(dāng)于,沒有key的話,新建key取0,有的話返回 countDict[word] = countDict.get(word,0) + 1 # 等同于 # # word沒出現(xiàn)在dic的話,需要賦值,不然讀的話會報(bào)錯(cuò) # if word not in countDict : # countDict[word] = 0 # # 處理完之后,都加1 # countDict[word] = countDict[word] + 1 # 得到各單詞出現(xiàn)的次數(shù)字典 # print(countDict) # 最大出現(xiàn)的次數(shù) bigCount = None # 最大出現(xiàn)的次數(shù)對應(yīng)的word bigKey = None # 遍歷字典,key就是word,value就是次數(shù) for word in countDict: count = countDict[word] # 注意None的情況和大于的情況都需要賦值 if bigCount is None or count>bigCount: bigCount = count bigKey = word # print(bigCount) # print(bigKey) # python的字典key必須是字符串包裹 # a = dict({'a':1,'b':2}) # items字典會返回元組列表 [('a', 1), ('b', 2)] # print(a.items()) # sorted排序元組列表 # 將countDict變成元組列表,然后將k,v對調(diào),變成新元組列表 sortList = sorted(([(count,word) for (word,count) in countDict.items()]),reverse=True) # 等同于以下 # # 裝(value,key)的list # tempList = list() # # 遍歷countDict.items(),能同時(shí)獲取key,value # for (word,count) in countDict.items(): # # key value調(diào)換下位置 # newTuple = (count,word) # # 裝進(jìn)tempList # tempList.append(newTuple) # # sorted 排序元組的時(shí)候,先按照元組的第一項(xiàng)排序,這邊就是按照count排序,且從大到小 # sortList = sorted(tempList,reverse=True) # 取前10 tenList = sortList[0:10] # 還需要將key和value反轉(zhuǎn)回來 resDict = dict() for (count,word) in tenList: resDict[word] = count print(resDict)
到此這篇關(guān)于Python入門案例之找出文件中出現(xiàn)次數(shù)最多的10個(gè)單詞的文章就介紹到這了,更多相關(guān)Python找出文件出現(xiàn)次數(shù)最多單詞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python繪圖實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用詳解
這篇文章主要為大家詳細(xì)介紹了Python在繪圖時(shí)如何實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02關(guān)于Python的json字符串與json模塊解讀
這篇文章主要介紹了關(guān)于Python的json字符串與json模塊解讀,JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C,?C++,?C#,?Java,?JavaScript,?Perl,?Python等),這些特性使JSON成為理想的數(shù)據(jù)交換語言,需要的朋友可以參考下2023-07-07Matplotlib 生成不同大小的subplots實(shí)例
今天小編就為大家分享一篇Matplotlib 生成不同大小的subplots實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05基于Python實(shí)現(xiàn)新年倒計(jì)時(shí)
眼看馬上春節(jié)就要來臨了,所以滿懷期待的寫了一個(gè)Python新年倒計(jì)時(shí)的小工具!文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01pandas統(tǒng)計(jì)重復(fù)值次數(shù)的方法實(shí)現(xiàn)
這篇文章主要介紹了pandas統(tǒng)計(jì)重復(fù)值次數(shù)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler
這篇文章主要介紹了python 實(shí)現(xiàn)多進(jìn)程日志輪轉(zhuǎn)ConcurrentLogHandler,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03