python字典操作实例详解


Posted in Python onNovember 16, 2017

本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Mysql自动备份脚本
Jul 14 Python
python实现清屏的方法
Apr 30 Python
在Python中处理时间之clock()方法的使用
May 22 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
Nov 09 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python的shutil模块中文件的复制操作函数详解
Jul 05 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
python pandas时序处理相关功能详解
Jul 03 Python
python 插入日期数据到Oracle实例
Mar 02 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
python实现报表自动化详解
Nov 16 #Python
TF-IDF算法解析与Python实现方法详解
Nov 16 #Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 #Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
Nov 16 #Python
用不到50行的Python代码构建最小的区块链
Nov 16 #Python
python内置函数:lambda、map、filter简单介绍
Nov 16 #Python
Python编程使用NLTK进行自然语言处理详解
Nov 16 #Python
You might like
ADODB类使用
2006/11/25 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
2007/07/21 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
对于this和$(this)的个人理解
2013/09/08 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
详解bootstrap-fileinput文件上传控件的亲身实践
2019/03/21 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
青安岗事迹材料
2014/05/14 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
个人工作能力自我评价
2015/03/05 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
Django rest framework如何自定义用户表
2021/06/09 Python
Python pyecharts绘制条形图详解
2022/04/02 Python
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技