python字典操作实例详解
作者:hayden__wang 发布时间:2021-05-21 08:22:24
标签:python,字典
本文实例为大家分享了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()
来源:http://www.cnblogs.com/hayden1106/p/7833438.html


猜你喜欢
- 在 Go 语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。另外,这个问题在面试中也经常会被问
- SQL Server连接中三个常见的错误分析 一、"SQL Server 不存在或访问被拒绝&quo
- 滚动回归所谓滚动回归,通常用在时间序列上。记当前时刻为 t,回归时长为 s,则一直使用 当作自变量来预测 。使用滚动回归的目的通常是为了避免
- 本文实例讲述了从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记。分享给大家供大家参考,具体如下:用tp3.2.3做了不少项目
- python是支持多线程的,主要是通过thread和threading这两个模块来实现的。thread模块是比较底层的模块,th
- driver = webdriver.Chrome()报错driver = webdriver.Chrome()是因为没有chromedri
- 这两天搞脚本,花费不少时间。Python和Shell都可以获取文本内容,网上许多资料介绍的都不具体。简单的使用Python和Shell写了脚
- 废话不多说原因:在Anaconda下打包的很多不必要的模块进去,导致最终的exe文件过于庞大。解决办法:要用纯净的python来打包即可避免
- 在并发编程中,多个Goroutine访问同一块内存资源时可能会出现竞态条件,我们需要在临界区中使用适当的同步操作来以避免竞态条件。Go 语言
- 推荐阅读:JS iFrame加载慢怎么解决在项目中经常要动态添加iframe,然后再对添加的iframe进行相关操作,而往往iframe还没
- #!/usr/bin/env python# -*- coding:utf-8-*-# file: {NAME}.py# @author:
- 本文实例讲述了PHP abstract 抽象类定义与用法。分享给大家供大家参考,具体如下:PHP抽象类应用要点:1.定义一些方法,子类必须完
- flash_url : "../swfupload/swfupload_f8.swf" upload_url: &quo
- 第五个页面name="changenick.php" <? include &q
- 如下代码:<div id="vue_det"> <
- 前言:时间戳的定义Unix时间戳(Unix时间戳)或称Unix时间(Unix时间),POSIX时间(POSIX时间),是一种时间表示方式,定
- 本文实例为大家分享了python合并同类型excel表格的具体代码,供大家参考,具体内容如下python脚本如下,验证有效。#!/usr/b
- 代码如下:--CAST 和 CONVERT 函数 Percentage DECLARE @dec decimal(5,3), @var va
- 本文实例讲述了Python 多线程,threading模块,创建子线程的两种方式。分享给大家供大家参考,具体如下:GIL(全局解释器锁)是C
- 不是炒冷饭,我添加了很多新的功能哦演示地址: xwinhtcdemo.htmCSS: global.cssHTC: xwin.htc特点:1