国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python字典操作實例詳解

2020-02-16 10:44:56
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python字典操作實例的具體代碼,供大家參考,具體內容如下

#!/usr/bin/env python3# -*- coding: utf-8 -*-import turtle ##全局變量###詞頻排列顯示個數count = 10#單詞頻率數組-作為y軸數據data = []#單詞數組-作為x軸數據words = []#y軸顯示放大倍數-可以根據詞頻數量進行調節yScale = 6#x軸顯示放大倍數-可以根據count數量進行調節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#放大倍數顯示  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 ####################      #對文本的每一行計算詞頻的函數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 #空格替換標點的函數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)       #從字典中獲取數據對  pairs = list(wordCounts.items())   #列表中的數據對交換位置,數據對排序  items = [[x,y]for (y,x)in pairs]   items.sort()    #輸出count個數詞頻結果  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()     #根據詞頻結果繪制柱狀圖  turtle.title('詞頻結果柱狀圖')  turtle.setup(900, 750, 0, 0)  t = turtle.Turtle()  t.hideturtle()  t.width(3)  drawGraph(t)  turtle.done()     #調用main()函數if __name__ == '__main__':  main()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭觉县| 丹棱县| 平安县| 武宣县| 勐海县| 济源市| 鄢陵县| 土默特左旗| 皮山县| 简阳市| 北辰区| 古田县| 武定县| 和静县| 道真| 南昌县| 磐石市| 错那县| 山东省| 长岭县| 枣强县| 昌图县| 通河县| 拉萨市| 苏尼特左旗| 扎鲁特旗| 成安县| 舞钢市| 蒲江县| 顺平县| 阿合奇县| 东丽区| 治多县| 海淀区| 海安县| 西平县| 措美县| 缙云县| 舒城县| 潞西市| 青河县|