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的print用法示例
Feb 11 Python
python fabric实现远程操作和部署示例
Mar 25 Python
给Python初学者的一些编程技巧
Apr 03 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
python标准库os库的函数介绍
Feb 12 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
计算Python Numpy向量之间的欧氏距离实例
May 22 Python
Python正则表达式如何匹配中文
May 27 Python
Python实现随机生成迷宫并自动寻路
Jun 13 Python
python 远程执行命令的详细代码
Feb 15 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输出XML到页面的3种方法详解
2013/06/06 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
javascript 写类方式之四
2009/07/05 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
2017/08/14 Javascript
说说Vuex的getters属性的具体用法
2019/04/15 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
利用python在excel中画图的实现方法
2020/03/17 Python
python下载的库包存放路径
2020/07/27 Python
python爬虫快速响应服务器的做法
2020/11/24 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
班级入场式解说词
2014/02/01 职场文书
《小动物过冬》教学反思
2014/04/17 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
文明旅游倡议书
2015/04/28 职场文书
小型婚礼主持词
2015/06/30 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
Python Pandas常用函数方法总结
2021/06/15 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers