复合数据类型,英文词频统计
作业来源: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.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
- 括号
- 有序无序
- 可变不可变
- 重复不可重复
- 存储与查找方式
2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:
括号:
列表用“[]”,元组用“()”,字典和集合用“{}”;
有序无序:
列表和元组有序,字典和集合无序;
可变不可变:
列表、字典和集合可变,元组不可变;
重复不可重复:
列表和元组可重复,字典键不可重复,值可以重复,集合不可重复;
存储与查找方式:
列表以值的方式存储为值,可通过索引查找;
元组以值的方式存储为值,可通过索引查找;
字典以键值对的方式存储为值,一般通过键查找;
集合以值的方式存储为值,可以通过set()来将序列和字典转换为集合。
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
import string import pandas as pd def getNumber(x): y=x[1] return y file = open('2.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')