复合数据类型,英文词频统计
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
列表增删改查:
list = ['yes', 'no', 1000, 2000] print('列表') print(list) list.append('Spike') print('list1.append(he)')#增加 print(list) del list[2] print('del list[1]:')#删除 print(list) list[2]='go' print('改:list1[2]=go')#改 print(list) print('查:list1[1]=')#查找 print(list[1])
元组:
增加,修改:元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
'删除:元组不可以删除元素但是可以删除整个元组'
tuple1 =('yes', 'no', 1000, 2000) print('元组') print('查:tuple1[0:4]=') print(tuple1[0:3])
字典的增删改查:
nice ={1:'yes', 2:'no', 3:'1000'} print('字典') print(nice) nice.update({4: '21'}) print('dict[4] = "hello"')#增加 print(nice) del nice[1] print('del dict[2]')#删除 print(nice) print('dict1[4]')#查找 print(nice[4])
集合的增删改查:
nice ={'yes', 'no', '1000'}
print('集合')
print(nice)
nice.add('2000')#增加
print(nice)
nice.discard('1000')#删除
print(nice)
print('\'1000\' in nice','1000' in nice)#查找
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
列表:列表是一组有序项目的数字结构,列表的项目应该放在方括号[ ]中,列表是可以被改变和可重复的;按照索引的方式查找通过偏移存储并且元素可以任意类型存在。
元组:元组与列表十分相似,可重复也是通过偏移的方式进行存储,不过元组是不可变的即是你是不能对元组中的元素进行修改,而且用的是();元组的元素是固定的长度、异构,也是任意嵌套。
字典:字典使用的是{},字典是无序的,但是可变可重复;使用键-值(key-value)进行存储,查找速度快;字典的key是不能变的,list不能作为key,字符串、元祖、整数等都可以。
集合:无序不可变,使用([ ]),与字典类似,但只包含键,而没有对应的值;元素可以是列表、元组、字典中的任意一个或多个。
六、词频统计
-
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.可视化:词云
import string import pandas as pd def getNumber(x): y=x[1] return y file = open('fff.txt','r',encoding='UTF-8').read().lower() s = "'" for i in s: file = file.replace(s,' ') song = file.split() exclude = {'a','the','i','you','and','in','but','not','it','s','if','do','m'} cun = set(song)-exclude dis = {} for i in cun: dis[i] = song.count(i) words = list(dis.items()) words.sort(key=getNumber,reverse=True) #输出前20 for j in range(20): print(words[j]) #保存为csv文件 pd.DataFrame(data=words).to_csv(r'3.csv',encoding='UTF-8')