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

 

1.列表,元组,字典,集合分别如何增删改查及遍历。

列表:
list1 = ["a", "b", "c", "d"]; #设置列表1

print(list1); #输出列表1

#增
list1.insert(4,'e'); #增添元素
print(list1);

#删
list1.pop(3) #删除指定位置元素
print(list1);

#改
list1[0] = 'q' #直接修改位置元素
print(list1)

#查
x = list1.index('c'); #从列表中找出某个值的索引位置
print(x);

#遍历列表中的每一个元素
for i in list1: print(i)

元组:
num1 = ('a', 'b','c', 'd'); #设置元组
num2 = ('e', 1,'g')
num3=num1+num2 #元组不支持修改,但可以通过连接组合的方式进行增加
print(num3)
#查
print (num1[0] ,num2[0])

字典:
num = {'a': 1, 'b': 2, 'c':3}   #定义字典
#增
num['d'] = 4 # 添加信息
print(num)
#删
del num['d'] # 删除键 d'
print(num)
#改
num['a'] = '0'; # 更新a
print(num)
#查
print(num['a'])


集合:
set={1,2,3} #定义一个集合
#增
set.add(4)
print(set)

#删
set.remove(4)
print(set)

#集合不能进行修改和查找

#遍历
for x in set:
print(x)
 

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)

 

exclude={'is','the','and','i','you','in','but','not','with','by','its','for','of','an','to','a','he','him','was','it','that','her'}  #定义停用词#
#读取a.txt内容#
def gettxt():
sep=".,:;?!-_'”"
txt=open('a.txt','r').read().lower()
for ch in sep :
txt=txt.replace(ch,' ')
return txt
#获取单词#
bigList=gettxt().split()
print(bigList);
print('big:',bigList.count('big'))
bigSet=set(bigList)
#过滤单词,包括一些冠词和连词等#
bigSet=bigSet-exclude
print(bigSet)
#单词计数#
bigDict={}
for word in bigSet:
bigDict[word]=bigList.count(word)
print(bigDict)

print(bigDict.items())
word=list(bigDict.items())
#按词频排序#
word.sort(key=lambda x:x[1],reverse=True)
print(word)
#输出频率较高的词语top20#
for i in range(20):
print(word[i])


结果:

 

 

 

 

posted @ 2019-03-14 14:34  cjvil  阅读(103)  评论(0编辑  收藏  举报