欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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?中的?super詳解

    python?中的?super詳解

    這篇文章主要介紹了python?中的?super,提到 super,最直接的想法就是它代表了父類,替父類執(zhí)行某些方法,但是理解也僅止步于此,下面對 super 做進一步理解,需要的朋友可以參考下
    2022-08-08
  • python 通過 socket 發(fā)送文件的實例代碼

    python 通過 socket 發(fā)送文件的實例代碼

    這篇文章主要介紹了python 通過 socket 發(fā)送文件的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • python logging模塊的使用詳解

    python logging模塊的使用詳解

    這篇文章主要介紹了python logging模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • 詳解Python如何在多層循環(huán)中使用break/continue

    詳解Python如何在多層循環(huán)中使用break/continue

    關(guān)于break/continue這兩個關(guān)鍵字在平常的使用過程中一直比較迷糊。所以本文將詳細講講Python如何在多層循環(huán)中使用break/continue,需要的可以參考一下
    2022-05-05
  • python處理csv中的空值方法

    python處理csv中的空值方法

    今天小編就為大家分享一篇python處理csv中的空值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python繪制驚艷的可視化動圖的示例代碼

    Python繪制驚艷的可視化動圖的示例代碼

    今天小編給大家介紹一款可視化模塊,使用它可以繪制出十分驚艷的動圖效果。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-04-04
  • Django實現(xiàn)whoosh搜索引擎使用jieba分詞

    Django實現(xiàn)whoosh搜索引擎使用jieba分詞

    這篇文章主要介紹了Django實現(xiàn)whoosh搜索引擎使用jieba分詞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • python自動化辦公操作excel的示例詳解

    python自動化辦公操作excel的示例詳解

    這篇文章主要為大家詳細介紹了如何利用python來實現(xiàn)自動化辦公操作excel文件進行各種樣式展示,并自動發(fā)送文件給"老板"的郵箱,希望對大家有所幫助
    2024-03-03
  • python之線程通過信號pyqtSignal刷新ui的方法

    python之線程通過信號pyqtSignal刷新ui的方法

    今天小編就為大家分享一篇python之線程通過信號pyqtSignal刷新ui的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python實現(xiàn)采用進度條實時顯示處理進度的方法

    Python實現(xiàn)采用進度條實時顯示處理進度的方法

    這篇文章主要介紹了Python實現(xiàn)采用進度條實時顯示處理進度的方法,涉及Python數(shù)學運算結(jié)合時間函數(shù)顯示進度效果的相關(guān)操作技巧,需要的朋友可以參考下
    2017-12-12

最新評論