复合数据类型,英文词频统计
作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.列表,元组,字典,集合分别如何增删改查及遍历
列表:
list1 = ['gakki','masami', 1998, 1997] list2 = [1, 2, 3, 4, 5] list3 = ["a", "b", "c", "d"] print ("list1[0]: ", list1[0]) print ("list2[1:5]: ", list2) #增加 list2.append('6') print("list2:",list2[0:100]) #删除 print ("原始列表 : ", list3) del list3[2] print ("删除后列表 : ", list3) #更改 list2[2] = 2001 print ("更新后的第三个元素为 : ", list2[2]) #查找 list4=['Boyoung','gakki','masami'] a=list4.index('Boyoung') print(a)
元组:
a = ['Gakki','ranks','first','in','the','world'] print(a[1:]) print(a[1:-1]) print(a[1:-1:2]) print(a[0::2]) print(a[5::-2]) # 添加 insert() 添加到指定位置 两个参数 a.insert(2, 'the') print("增加后的元组:",a) # 修改 a[1] = 'win' print("修改一个单词后的元组:",a) a[1:] = ['smiles','like','a','flower'] print("修改后的元组:",a) # 删除 a.remove(a[0]) print("删除后的元组:",a) #查找 # #index 索引 获取下标 b = a.index('flower') print(b)
字典:
dict = {"gakki":"小米", "masami":"华为"}
#增加
dict.setdefault("parkboyoung","小米")
print("增加后的字典:",dict)
#删除
del dict['parkboyoung']
print("删除后的字典:",dict)
#修改
dict['gakki'] = 1998;
dict['masami'] = "1997"
print("修改后的字典:",dict)
#查找
print(dict["gakki"])
print(dict.get("masami"))
print(dict.get("parkboyoung"),"这个键不存在")
集合:
s = {1,2,3,4} print (s) #增加 s.add(1) print("增加集合内有的数:",s) s.add(8) print("增加集合内不存在的数:",s) s1 ={ 5,6,7,} s.update(s1) print("合并集合:",s) #删除 s.pop() print("随机删除后:",s) s.remove(8) print("指定删除后:",s) #修改 s=s|s1 print("修改后:",s) s=s&s1 print("修改后:",s) #查找 # 交集 print (s1 & s) # 并集 print (s1 | s) # 差集 print (s1 - s) print (s - s1) # 对等差分 print (s1 ^ s)
遍历函数,其下格式为:
function.sort()#function可以是列表、元组、字典或者集合任意一种 for i in function: print(i,end='>')
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
(1)列表
- 列表list,用中括号“[ ]”表示
- 列表是一组任意类型的值,按照一定顺序组合而成的
- 可以随时添加删除修改其中的元素
- 元素可重复
- 存储时每一个元素被标识一个索引,每当引用时,会将这个引用指向一个对象,所以程序只需处理对象的操作
(2)元组
- 元组tuple,用小括号“( )”表示
- 与列表相同,有序
- 一旦初始化就不能修改
- 元素可重复
- 与列表相似,元组是对象引用的数组
(3)字典
- 字典dict,用大括号“{key,value}”表示
- 字典中的项没有特定顺序,以“键”为象征
- 因为是无序,故不能进行序列操作,但可以在远处修改,通过键映射到值
- key不能重复
- 字典存储的是对象引用,不是拷贝,和列表一样
(4)集合
- 集合set,用小括号“( )”表示
- 无序
- 可变,可以添加和删除元素
- 无重复
- 与列表相似
3.词频统计
-
1.下载一长篇小说,存成utf-8编码的文本文件 file
2.通过文件读取字符串 str
3.对文本进行预处理
4.分解提取单词 list
5.单词计数字典 set , dict
6.按词频排序 list.sort(key=lambda),turple
7.排除语法型词汇,代词、冠词、连词等无语义词
- 自定义停用词表
- 或用stops.txt
fo = open('1.txt', 'r', encoding='utf-8') stra = fo.read().lower() fo.close() print(stra) sep = ',.;!' for ch in sep: stra = stra.replace(ch, '') print(stra) strList = stra.split(' ') print(len(strList), strList) 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]) import pandas as pd pd.DataFrame(data=wcList).to_csv(r'E:\homework\joker.csv', encoding='utf-8')
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