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脚本跳一跳刷高分技巧
Jan 04 Python
Python实现二维数组输出为图片
Apr 03 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
python实现学员管理系统
Feb 26 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
Python列表推导式实现代码实例
Sep 09 Python
Python实现简单的猜单词小游戏
Oct 28 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
Python中requests做接口测试的方法
May 30 Python
python必学知识之文件操作(建议收藏)
May 30 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
srcElement表格样式
2006/09/03 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
js实现限定范围拖拽的示例
2020/10/26 Javascript
python将ansible配置转为json格式实例代码
2017/05/15 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
成龙霸王洗发水广告词
2014/03/14 职场文书
晚会主持词开场白
2014/03/17 职场文书
安全演讲稿开场白
2014/08/25 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python
python计算列表元素与乘积详情
2022/08/05 Python