复合数据类型,英文词频统计
作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696
1.列表,元组,字典,集合分别如何增删改查及遍历。
列表的增删改查
list1 = list('this is a list')
#增加
list1.append('!') #末尾增加元素
list1.insert(2,'this is index 3') #指定index增加一个元素
#删除
list1.pop(-1) #删除指定index的元素 默认是-1 return被删除元素的值
del list1[-1]
if '!' in list1: #删除第一个匹配的元素,如果不存在会报错,没有返回值
list1.remove('!')
#修改
list1[0] = '0' #元素赋值
list1[0:2] = list('05') #分片赋值
list1[1:1] = list('1234') #分片赋值 插入新元素
list1[1:5] = [] #分片赋值 删除元素
#查找
if 'a' in list1:
index = list1.index('a') # 查找元素下标
字典的增删改查
#增加
dict1['key3']='value3' #字典可以自动添加
dict1.setdefault('key5','N/A') #如果不存在,就设置默认值
#删除
del dict1['key3']
print dict1.pop('key2') #popitem随机删除 和列表的pop一样
#dict1.clear() #深删除,即使有拷贝 也会被删除
#修改
if 'key1' in dict1:
dict1['key1']='new_value_1'
#查找
if 'key1' in dict1:
print dict1['key1']
if dict1.has_key('key1'):
print dict1['key1']
print dict1.get('key3','not exists') #宽松访问
print dict1.keys(),dict1.values()
#遍历
for key in d:printf(d[key])
段落的增删
a=set('a')
#增加元素
a.add('b')
#删除元素
a.remove('b') 或者 a.discard('b')
a.pop() #随机删除元素
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
列表: list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,并且列表是可以嵌套的。
元组:元组和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。元组通常用在使语句或用户定义的函数能够安全的采用一组值的时候,即被使用的元组的值不会改变。元组可以嵌套。
字典: 字典类似于你通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。另外,记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺 序,那么你应该在使用前自己对它们排序。
集合:特性:与字典类似,但只包含键,而没有对应的值,包含的数据不重复。
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)
9.可视化:词云
排序好的单词列表word保存成csv文件
import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')
线上工具生成词云:
https://wordart.com/create
代码架构:
前20的单词:
生成csv格式:
生成词云: