python字典操作實例詳解
更新時間:2017年11月16日 15:38:58 作者:hayden__wang
這篇文章主要為大家詳細介紹了python字典操作實例的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python字典操作實例的具體代碼,供大家參考,具體內(nèi)容如下
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import turtle ##全局變量## #詞頻排列顯示個數(shù) count = 10 #單詞頻率數(shù)組-作為y軸數(shù)據(jù) data = [] #單詞數(shù)組-作為x軸數(shù)據(jù) words = [] #y軸顯示放大倍數(shù)-可以根據(jù)詞頻數(shù)量進行調(diào)節(jié) yScale = 6 #x軸顯示放大倍數(shù)-可以根據(jù)count數(shù)量進行調(diào)節(jié) xScale = 30 ################# Turtle Start #################### #從點(x1,y1)到(x2,y2)繪制線段 def drawLine(t, x1, y1, x2, y2): t.penup() t.goto (x1, y1) t.pendown() t.goto (x2, y2) # 在坐標(x,y)處寫文字 def drawText(t, x, y, text): t.penup() t.goto (x, y) t.pendown() t.write(text) def drawGraph(t): #繪制x/y軸線 drawLine (t, 0, 0, 360, 0) drawLine (t, 0, 300, 0, 0) #x軸: 坐標及描述 for x in range(count): x=x+1 #向右移一位,為了不畫在原點上 drawText(t, x*xScale-4, -20, (words[x-1])) drawText(t, x*xScale-4, data[x-1]*yScale+10, data[x-1]) drawBar(t) #繪制一個柱體 def drawRectangle(t, x, y): x = x*xScale y = y*yScale#放大倍數(shù)顯示 drawLine(t, x-5, 0, x-5, y) drawLine(t, x-5, y, x+5, y) drawLine(t, x+5, y, x+5, 0) drawLine(t, x+5, 0, x-5, 0) #繪制多個柱體 def drawBar(t): for i in range(count): drawRectangle(t, i+1, data[i]) ################# Turtle End #################### #對文本的每一行計算詞頻的函數(shù) def processLine(line, wordCounts): #用空格替換標點符號 line = replacePunctuations(line) #從每一行獲取每個詞 words = line.split() for word in words: if word in wordCounts: wordCounts[word] += 1 else: wordCounts[word] = 1 #空格替換標點的函數(shù) def replacePunctuations(line): for ch in line: if ch in "~@#$%^&*()_-+=<>?/,.:;{}[]|\'""": line = line.replace(ch, " ") return line def main(): #用戶輸入一個文件名 filename = input("enter a filename:").strip() infile = open(filename, "r") #建立用于計算詞頻的空字典 wordCounts = {} for line in infile: processLine(line.lower(), wordCounts) #從字典中獲取數(shù)據(jù)對 pairs = list(wordCounts.items()) #列表中的數(shù)據(jù)對交換位置,數(shù)據(jù)對排序 items = [[x,y]for (y,x)in pairs] items.sort() #輸出count個數(shù)詞頻結(jié)果 for i in range(len(items)-1, len(items)-count-1, -1): print(items[i][1]+"\t"+str(items[i][0])) data.append(items[i][0]) words.append(items[i][1]) infile.close() #根據(jù)詞頻結(jié)果繪制柱狀圖 turtle.title('詞頻結(jié)果柱狀圖') turtle.setup(900, 750, 0, 0) t = turtle.Turtle() t.hideturtle() t.width(3) drawGraph(t) turtle.done() #調(diào)用main()函數(shù) if __name__ == '__main__': main()
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
python 通過 socket 發(fā)送文件的實例代碼
這篇文章主要介紹了python 通過 socket 發(fā)送文件的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08詳解Python如何在多層循環(huán)中使用break/continue
關(guān)于break/continue這兩個關(guān)鍵字在平常的使用過程中一直比較迷糊。所以本文將詳細講講Python如何在多層循環(huán)中使用break/continue,需要的可以參考一下2022-05-05Django實現(xiàn)whoosh搜索引擎使用jieba分詞
這篇文章主要介紹了Django實現(xiàn)whoosh搜索引擎使用jieba分詞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04python之線程通過信號pyqtSignal刷新ui的方法
今天小編就為大家分享一篇python之線程通過信號pyqtSignal刷新ui的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python實現(xiàn)采用進度條實時顯示處理進度的方法
這篇文章主要介紹了Python實現(xiàn)采用進度條實時顯示處理進度的方法,涉及Python數(shù)學運算結(jié)合時間函數(shù)顯示進度效果的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12