复合数据类型,英文词频统计

作业的要求来自于: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:\Users\unliee\Desktop\84txt.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');

  

 

posted @ 2019-03-14 20:37  unilee  阅读(147)  评论(0编辑  收藏  举报