集合
多个元素放在一起,不存在相同元素,没有顺序。
放入集合的元素是不可变的元素类型。
整数、浮点数、复数、字符串类型
用{}表示
元素之间用 , 分隔
集合操作:
集合是存储时候是无序的
集合比较 >= 之类的
集合去重:
序列类型和操作
序列类型通用操作符:
元组类型定义
列表类型定义:
序列类型的运用场景
1.数据表示
元素遍历:
for item in ls:
<语句块>
for item in tp:
<语句块>
2.数据保护
3.基本统计值
字典类型及操作
集合使用set{}生成 无键值对
字典使用 {}生成 有键值对
字典类型的应用场景:
映射的表达
jieba库的使用
优秀的中文分词第三方库
文本词频统计
中文:
import jieba
excludes={"将军","却说","荆州","二人","不可","不能","如此"}
txt=open("threekingdoms.txt","r",encoding="utf-8").read()
words=jieba.lcut(txt)
counts={}
for word in words:#多了个小盒子 rword
if len(word)==1:
continue
elif word=="诸葛亮" or word=="孔明曰":
rword="孔明"
elif word == "关公" or word == "云长":
rword = "关羽"
elif word == "玄德" or word == "玄德曰":
rword = "刘备"
elif word == "孟德" or word == "丞相":
rword = "曹操"
else:
rword=word
counts[rword]=counts.get(rword,0)+1
for word in excludes:
del counts[word]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
文件的使用
有的文件是文本文件 有的是二进制文件
文本文件保存:
#文本形式打开文件
tf = open("f.txt","rt")
print(tf.readline())
tf.close()
放在同一个目录中
#二进制形式打开文件
bf=open("f.txt","rb")
print(bf.readline())
bf.close()
文件内容的读取
遍历全文本方法二:分阶段 按数量逐步处理
逐行处理:
方法一:
数据的文件写入
写入时候 没有空格 没有换行
自动轨迹绘制实例:
根据脚本来绘制图形
不是根据代码
自动化的很重要的过程
自动绘制实例
#AutoTraceDraw.py
import turtle as t
t.title("自动轨迹绘制")
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
#数据读取
datels=[]
f=open("data.txt")
for line in f:
line = line.replace("\n","")
detals.append(list(map(eval,line.split(","))))
f.close()
#map 内嵌函数 功能:降低一个函数的参数作用于第二个参数 eval 作用在 line.split
#自动绘制
for i in range(len(detals)):
t.pencolor(detals[i][3],detals[i][4],detals[i][5])
t.fd(detals[i][0]])
if detals[i][1]:
t.right(detals[i][2])
else:
t.left(detals[i][2])
数据:
举一反三:
数据维度
一维:
二维:
多维:
通常采用这样的思路,虽然通用型较差
数据处理:
二维数据的表达和处理
词云
wordcloud库安装
(cmd命令行)pip install wordcloud
工作报告词云
#GovRptWordCloudv1.py
import jieba
import wordcloud
f = open("新时代中国特色社会主义.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",\
font_path="/System/Library/fonts/PingFang.ttc"
)
w.generate(txt)
w.to_file("grwordcloud.png")
#特别注意 mac系统下的字体 用我写的这个font_path
如果要词云有形状
import jieba
import wordcloud
from scipy.misc import imread
mask = imread("fivestart.png")
f = open("关于实施乡村振兴战略的意见.txt", "r", encoding="utf-8")
t = f.read()
f.close()
ls = jieba.lcut(t)
txt = " ".join(ls)
w = wordcloud.WordCloud( \
width = 1000, height = 700,\
background_color = "white",\
font_path="/System/Library/fonts/PingFang.ttc",\
mask=mask,\
max_words=15
)
w.generate(txt)
w.to_file("grwordcloud.png")