作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2696
1.列表,元组,字典,集合分别如何增删改查及遍历。
列表:
list=['Mon','Tues','Wednes','Thurs']
print ('原始列表为 : ', list)
list.insert(2,'haha')
'''在Tues后面插入haha'''
print ('列表插入元素后为 : ', list)
del list[2]
'''删除haha'''
print ('列表删除元素后为 : ', list)
list[0]='sun'
'''修改列表第一个元素'''
print ('列表修改元素后为 : ', list)
for i in list:
print(i)
'''遍历列表'''

元组:
YuanZu=('Mon','Tues','Wednes','Thurs')
YuanZu2=('Fir','Satur','Sun')
YuanZu3=YuanZu+YuanZu2
print(YuanZu2)
del YuanZu2;
print(YuanZu3)

字典:
ZiDian={'date':'Mon','date_1':'Tues','date_2':'Wednes'}
print(ZiDian)
print(ZiDian['date_2'])
ZiDian['date_2']='Sun'
print(ZiDian['date_2'])

集合:
date = {'Mon', 'Tues', 'Wednes', 'Thurs', 'Fir', }
print(date)
date.add("Sun")
print(date)
date.remove("Sun")
print(date)
print(len(date))

2.总结列表,元组,字典,集合的联系与区别。
列表是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中。
集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 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)
import pandas as pd
from nltk.corpus import stopwords
stopwords=stopwords.words('english')
f = open(r'C:UsersunlieeDesktop84txt.txt', encoding='utf-8-sig')
text=f.read()
f.close()
text=text.lower()
FuHao="., --? " "
for s in FuHao:
text=text.replace(s," ");
text=text.split();
for i in text:
dict[i]=text.count(i);
for c in stopwords:
if c in dict.keys():
dict.pop(s);
d=sorted(dict.items(),reverse=True,key=lambda d:d[1]);
print("前20个单词出现频数为:")
for i in range(20):
print(d[i][0],"--",d[i][1]);
pd.DataFrame(data=d).to_csv('big.csv',encoding='utf-8');
