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

 

 

作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

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

列表操作:

#列表
list1 = ['speakingSirqin', 'softqin', 1999, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
#输出
print(list1)
print(list2)
print(list3)
print(list2[0:2])#下标0开始,下标2结束,但不包含下标2所对应的上键(元素)'
#增加
list1.insert(2,'lili')
list1.insert(5,'qin')
print(list1)
#删除
list2.pop(0)
print(list2)
#修改
list3[1]='A'
print(list3)
#查找
index=list3.index('c')
print("找到c在列表3的下标为:",index)

#列表的增删改查

 

元组操作:

#元组
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 8)
tup3 = "a", "b", "c", "d"
#输出
print(tup1)
print(tup2)
print(tup3)
print(tup1[0])
print(tup2[1:3])
#连接元组
tup4=tup1+tup2+tup3
print(tup4)

字典操作:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

 集合操作:

num = {1,2,3,4,5}          #定义一个集合
print('增加:\n元素原本为:{}'.format(num))
num.add(6)
print('num.add(6):增加一个元素 结果:{}'.format(num))
print('删除:\n元素原本为:{}'.format(num))
num.remove(1)
print('num.remove(1):删除1这个元素,若集合没有1则出错 结果:{}'.format(num))
num.pop()
print('num.pop():随机删除一个元素, 结果:{}'.format(num))
print('查询:\n元素原本为:{}'.format(num))
print('1 in num:查询1这个元素是否存在,是则是true, 结果:{}'.format(1 in num))
print('遍历:\n元素原本为:{}'.format(num))
print('for num in set1:print(num):便利整个集合  结果:')
for num1 in num:
    print(num1)

 

2.总结列表,元组,字典,集合的联系与区别。参考以下几个方面:

  • 括号
  • 有序无序
  • 可变不可变
  • 重复不可重复
  • 存储与查找方式
  列表 元组 字典 集合
括号 []  ()  {}  {}或set() 
有序无序  有序  有序  无序   无序,自动正序 
 可变不可变  可变  不可变   可变   不可变 
重复不重复   是  是  否  是 
存储方式   值  值  键(不可重复)

 键值对(键不能重复)

 

 

 

 

 

 

3.词频统计

  • 1.通过文件读取字符串 str

    2.对文本进行预处理

    3.分解提取单词 list

    4.单词计数字典 set , dict

    5.按词频排序 list.sort(key=lambda),turple

 代码:

import string
import pandas as pd

##定义获取文件并处理函数
def getstr():
    txt = open(r"..\python1\what", "r").read().lower()

    for c in string.punctuation:
        txt = txt.replace(c, " ")
    return txt

'''将文本分成单词'''
txtDC=getstr().split()

#过滤无意词
ex = {'a','an','and','was','as','up','my','it','here','at','ll','his','s','he','that','from','had','have','we','the','i','you','in','on','but','with','not','by','its','for','of','to'}
txtSet=set(txtDC)-ex

'''单词统计'''
txtDic = {}
for word in txtSet:
    txtDic[word] = txtDC.count(word)

#排序
wordList = list(txtDic.items())
wordList.sort(key=lambda x:x[1],reverse=True)

#输出top20
for i in range(20):
    print(wordList[i])

#保存为csv文件
pd.DataFrame(data=wordList).to_csv('ToMyTex.csv',encoding='utf-8')

运行截图:

生成词汇图:

 

posted @ 2019-03-17 23:16  代码是肥钦喔  阅读(260)  评论(0编辑  收藏  举报