#!/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)
#從每一行獲取每個詞
w程式設計客棧ords = 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 filen").strip()
infile = open(filename, "r")
#建立用於計算詞頻的空字典
wordcounts = {}
for line in infile:
processline(line.lower(), wordcounts)
www.cppcns.com #從字典中獲取資料對
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()
本文標題: python字典操作例項詳解
本文位址: /jiaoben/python/211283.html
python 字典例項
python 內建了字典 dict 的支援,dict 全稱 dictionary,在其他語言中也 稱為 map,使用鍵 值 key value 儲存,具有極快的查詢速度 問題 統計列表中某個字元出現的次數 ll lily hanmei lilei lily hamei hamei lily 解題思路...
python操作字典 Python 字典操作高階
學習了 python 基本的字典操作後,學習這些高階操作,讓寫出的 更加優雅簡潔和 pythonic 與字典值有關的計算 問題想對字典的值進行相關計算,例如找出字典裡對應值最大 最小 的項。解決方案一 假設要從字典 中找出值最小的項,可以這樣做 d min zip d.values d.keys 2...
Python 檔案讀寫操作例項詳解
一 python中對檔案 資料夾操作時經常用到的os模組和shutil模組常用方法。1.得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 2.返回指定目錄下的所有檔案和目錄名 os.listdir 3.函式用來刪除乙個檔案 os.remove 4.刪除多個目錄 os.re...