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编写脚本使IE实现代理上网的教程
Apr 23 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
Apr 15 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
python交易记录链的实现过程详解
Jul 03 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
python tkinter组件摆放方式详解
Sep 16 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
PHP微信分享开发详解
2017/01/14 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
python计算对角线有理函数插值的方法
2015/05/07 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
使用python模拟高斯分布例子
2019/12/09 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
python中selenium库的基本使用详解
2020/07/31 Python
python 制作磁力搜索工具
2021/03/04 Python
环境工程毕业生自荐信
2013/11/17 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
项目经理任命书
2014/06/04 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
张丽莉事迹观后感
2015/06/16 职场文书