复合数据类型,英文词频统计
这次作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
一. 列表,元组,字典,集合分别如何增删改查及遍历。
1.列表的增删改查
list1=['a','b','c'] print('列表') print(list1) list1.append('d') print('增') print(list1) del list1[0] print('删') print(list1) list1[1]='e' print('改') print(list1) print('查') print(list1[1])
2.元组的增删改查
a=['an','ang'] b=['bb','bc'] #增 a=a+b print(a) #删 del a #改 a=['an','ang'] a[1]=['and'] print(a) #查 print(a[1])
3.字典的增删改查
dict={'gz':'广州','sz':'深圳'} #增加 dict.setdefault('mz','梅州') print("增加后的字典:",dict) #删除 del dict['mz'] print("删除后的字典:",dict) #修改 dict['广州'] = '惠州'; print("修改后的字典:",dict) #查找 print(dict["gz"])
4.集合的增删改查
a ={'1991', '1992', '1997'} print('集合a') print(a) a.add('1973') print('增:a.add(\'1973\')') print(a) a.discard('1997') print('删:a.discard(\'1997\')') print(a) print('查:\'1997\' in Set1','1997' in a)
二、列表、元组、字典与集合的联系与区别。
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
(1)括号
列表为[ ],元组为( ),字典与集合为{ }。
(2)有序无序
列表与元组有序,字典与集合无序。
(3)可变不可变
列表与字典可变,元组与集合不可以变。
(4)重复不可重复
列表元组集合都可重复,只有字典不可重复。
(5)存储与查找方式
列表和元组都是值,字典是键,集合是键对值
三、词频统计
- 下载一长篇小说,存成utf-8编码的文本文件 file
- 通过文件读取字符串 str
- 对文本进行预处理
- 分解提取单词 list
- 单词计数字典 set , dict
- 按词频排序 list.sort(key=lambda),turple
- 排除语法型词汇,代词、冠词、连词等无语义词,自定义停用词或用stops.txt输出TOP(20)
- 可视化:词云,排序好的单词列表word保存成csv文件
- 线上工具生成词云:
fo = open('ll.txt','r', encoding='utf-8') stra = fo.read().lower() fo.close() print(stra) # 1.准备utf-8编码的文本文件file 2.通过文件读取字符串 str sep = ',.;!' for ch in sep: stra = stra.replace(ch, '') # 进行预处理,清除掉sep中存在的标点符号 print(stra) strList = stra.split(' ') print(len(strList), strList) # 分解提取单词,转化为列表list strSet = set(strList) print(len(strSet), strSet) # 转化为集合 strDict = {} for world in strSet: strDict[world] = strList.count(world) print(len(strDict), strDict) # 转化为字典,计算上一个集合中每个单词出现的次数 wcList = list(strDict.items()) print(wcList) # 将字典中的目录转化为列表输出 wcList.sort(key=lambda x: x[1], reverse=True) print(wcList) # 按降序输出 e = {'a', 'the', 'an', 'and', 'i', 'or', 'of'} strSet = strSet - e print(len(strSet), strSet) # 排除语法型词汇,代词、冠词、连词等无语义词 for i in range(20): print(wcList[i]) # TOP20输出 import pandas as pd pd.DataFrame(data=wcList).to_csv('joker.csv', encoding='utf-8')
- 生成词云