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 代码优化详解
Oct 27 Python
图文详解WinPE下安装Python
May 17 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
python GUI实例学习
Nov 21 Python
对Python中type打开文件的方式介绍
Apr 28 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python操作Excel插入删除行的方法
Dec 10 Python
python多线程http压力测试脚本
Jun 25 Python
Python Django基础二之URL路由系统
Jul 18 Python
Python hmac模块使用实例解析
Dec 24 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
wxPython修改文本框颜色过程解析
Feb 14 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
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
逐步提升php框架的性能
2008/01/10 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
php简单截取字符串代码示例
2016/10/19 PHP
Cookie 注入是怎样产生的
2009/04/08 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
浅谈JavaScript的自动垃圾收集机制
2016/12/15 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
vue自定义指令用法经典实例小结
2019/03/16 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
python如何安装下载后的模块
2020/07/03 Python
python 装饰器的实际作用有哪些
2020/09/07 Python
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
自我评价范文点评
2013/12/04 职场文书
优秀教师主要事迹
2014/02/01 职场文书
人事助理自荐信
2014/02/02 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
法制宣传日活动总结
2014/04/29 职场文书
班级出游活动计划书
2014/08/15 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
单位计划生育责任书
2015/05/09 职场文书
《日月潭》教学反思
2016/02/20 职场文书
TV动画「神渣☆爱豆」公开第一弹主视觉图
2022/03/21 日漫