python字典操作例項詳解

2022-10-04 20:42:30 字數 2804 閱讀 2227

#!/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...