复合数据类型,英文词频统计
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.列表,元组,字典,集合分别如何增删改查及遍历。
列表-list | |
增 | list.append(obj) 增加元素到末尾 |
list.insert(index, obj) 增加元素到指定位置 index:索引位置 obj:内容 |
|
list.extend(list_i) 将list_i列表中的元素增加到list中 |
|
删 | list.pop(): 默认删除list末尾的元素 list.pop(index) 删除指定位置的元素,index是索引 |
del list[index] 删除指定位置的元素,index是索引 del list 删除整个列表 |
|
list.remove(obj) 移除列表第一个与obj相等的元素 |
|
list.clear() 清空列表全部内容 |
|
改 | list[index]=obj 修改指定位置的元素 |
查 | list[index] 通过下标索引,从0开始 |
list[a:b] 切片,顾头不顾尾 |
元组-tup | |
增 | tup=tup1+tup2 元组不支持修改,但可以通过连接组合的方式进行增加 |
删 | del tup 元组不支持单个元素删除,但可以删除整个元组 |
改 | tup=tup[index1],tup1[index2], ... tup=tup[index1:index2] 元组是不可变类型,不能修改元组的元素。可通过现有的字符串拼接构造一个新元组 |
tup[index] 通过下标索引,从0开始 |
|
查 | tup[a:b] 切片,顾头不顾尾 |
字典-dict | |
增 | dict[key]=value 通过赋值的方法增加元素 |
dict.update(dict_i) 把新的字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict不同的key) |
|
删 | del dict[key] 删除单一元素,通过key来指定删除 del dict 删除字典 |
dict.pop(key) 删除单一元素,通过key来指定删除 |
|
dict.clear() 清空全部内容 |
|
改 | dict[key]=value 通过对已有的key重新赋值的方法修改 |
dict.update(dict_i) 把字典dict_i的键/值对更新到dict里(适用dict_i中包含与dict相同的key) |
|
查 | dict[key] 通过key访问value值 |
dict.items() 以列表返回可遍历的(键, 值) 元组数组 |
|
dict.keys() 以列表返回一个字典所有键值 dict.values() 以列表返回一个字典所有值 |
|
dict.get(key) 返回指定key的对应字典值,没有返回none |
集合-set | |
增 |
set.add(elmnt) |
删 |
set.clear() |
set.difference_update(set) |
|
set.discard(value) |
|
set.pop() |
|
set.remove(item) |
|
改 |
set.update(set) |
查 |
set.union(set1, set2...)
|
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
-
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
代码如下:
1 expect={'a', 'an','i', 'you', 'and', 'the', 'to', 'be', 'is', 'in', 'on', 'or', 'will', 'this', 'there', 'them', 'it', 'those', 'these','they','of', 'if', 'to', 'was', 'were', 'with', 'that', 'witch' 2 ,'which','so','we','as','have','by','from','are','not','at','been','for','would','its','may','has','but','my','myself','our','ours','ourelves','about','no','nor', 3 'himself','itself','themselves','whatever','should','had'}#排除无语义词 4 def read_file(): 5 f = open('C:\\Users\\leo\\Desktop\\The Earths Beginning.txt', 'r', encoding='utf-8') 6 content = f.read() #通过文件读取字符串 str 7 f.close() 8 return content 9 text = read_file() 10 for i in ",.?;-—[]1234567890()": #对文本进行预处理 11 text = text.replace(i," ") 12 wordList = text.lower().split() #转为list列表 13 wordSet = set(wordList) #转为set集合 14 wordSet = wordSet - expect #排除无语义词 15 wordDict={ } 16 for w in wordSet: 17 wordDict[w] = wordList.count(w) 18 word = list(wordDict.items()) 19 word.sort(key=lambda x:x[1],reverse=True) 20 print(word) 21 import csv 22 #写入csv文件 23 csvFile=open("The Earths Beginning.csv",'w',newline='',encoding='utf-8') 24 try: 25 writer=csv.writer(csvFile) 26 writer.writerow(word) 27 finally: 28 csvFile.close()
词云展示: