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获取本机mac地址和ip地址的方法
Apr 29 Python
在Python程序中操作MySQL的基本方法
Jul 29 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
python selenium firefox使用详解
Feb 26 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
Django对models里的objects的使用详解
Aug 17 Python
Python3 pandas 操作列表实例详解
Sep 23 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
Python matplotlib实时画图案例
Apr 23 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 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
微信公众平台接口开发入门示例
2014/12/24 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
Python中使用语句导入模块或包的机制研究
2015/03/30 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python实现的微信公众号群发图片与文本消息功能实例详解
2017/06/30 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
自荐书范文范例
2014/02/13 职场文书
Python机器学习之基础概述
2021/05/19 Python