复合数据类型,英文词频统计
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696
1.列表,元组,字典,集合分别如何增删改查及遍历。
# # -*- coding: utf-8 -*-
#列表的遍历
List=["阿花","小金",80,90]
print("列表的遍历:")
for l1 in List:
print(l1)
#元组的遍历
Tuple=(23,79,69,40)
print("元组的遍历:")
for T1 in Tuple:
print(T1)
#集合的遍历
Set={43,58,90,74}
print("集合的遍历:")
for S1 in Set:
print(S1)
#字典的遍历
classmate=["牛牛","王清","山本"]
sorce=[89,76,90]
d={}
print("字典的遍历:")
d=dict(zip(classmate,sorce))
for i in d.keys():
print(i,d[i])
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
1.列表,元组,字典是有顺序的,而集合是没顺序的
2.列表是以方括号形式表示,元组是以圆括号表示,字典以花括号表示,集合则是以[()]的形式表示
3.列表是可变对象,它支持在原处修改的操作.也可以通过指定的索引和分片获取元素。区别于元组,可动态增加,删除,更新。
4.元组和列表在结构上没有什么区别,唯一的差异在于元组是只读的,不能修改。元组用“()”表示。元组一旦定义其长度和内容都是固定的。一旦创建元组,则这个元组就不能被修改,即不能对元组进行更新、增加、删除操作。若想创建包含一个元素的元组,则必须在该元素后面加逗号“,”,否则创建的不是一个元组,而是一个字符串。
5.集合没有特殊的表示方法,而是通过一个set函数转换成集合。集合是一个无序不重复元素集,基本功能包括关系测试和消除重复元素.。
6.字典最大的价值是查询,通过键,查找值。
3.词频统计
-
1.下载一长篇小说,存成utf-8编码的文本文件 file
2.通过文件读取字符串 str
3.对文本进行预处理
4.分解提取单词 list
5.单词计数字典 set , dict
6.按词频排序 list.sort(key=lambda),turple
7.排除语法型词汇,代词、冠词、连词等无语义词
- 自定义停用词表
- 或用stops.txt
8.输出TOP(20)
# # -*- coding: utf-8 -*-
fo = open(r'D:\After Twenty Years.txt', encoding='utf-8')
text = fo.read()
fo.close()
text = text.lower() # 转换成小写
sep = ",.?!:''\n'"
for s in sep: # 去除各种符号,用空格代替
text = text.replace(s, ' ')
allWord = text.split(' ') # 分隔出单词
result = [] # 存储不重复的单词
print("单词 个数")
for b in allWord:
isRepeat = False
for c in result:
if b == c:
isRepeat=True
if isRepeat == False: # 若未出现在result字典里,则加入
result.append(b)
for ch in result:
if ch != '':
print("{:<10} {:<5}".format(ch, allWord.count(ch))) # 格式化输出
- 9.可视化:词云
排序好的单词列表word保存成csv文件
import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')
线上工具生成词云:
https://wordart.com/create