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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
django 在原有表格添加或删除字段的实例
May 27 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Python之循环结构
Jan 15 Python
python处理excel绘制雷达图
Oct 18 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
python3实现将json对象存入Redis以及数据的导入导出
Jul 16 Python
python数据抓取3种方法总结
Feb 07 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 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修改时间格式的代码
2011/05/29 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
jqTransform美化表单
2015/10/10 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
Python2 Selenium元素定位的实现(8种)
2019/02/25 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
python中time.ctime()实例用法
2021/02/03 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
腾讯广告词
2014/03/19 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
初一年级组工作总结
2015/08/12 职场文书
创业计划书之面包店
2019/09/17 职场文书