1.列表,元组,字典,集合分别如何增删改查及遍历。
2.总结列表,元组,字典,集合的联系与区别
元组和列表是类似的, 只是元组不可修改内容。
注意这里指的是不可修改元组元素的指向, 可以修改内容指向的内容。
字典完全区别于列表和元组
因为字典使用hash表来存储, 所以只有能够进行hash运算的才能作为键值。
个人认为, 一般不可变的都能作为键, 比如str/tuple/None/function.列表不能作为键。
最后, 由于字典是hash表算法{字典查找O(1), 列表遍历O(n)}, 在数据量巨大的时候, 字典的查找效率高。
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={'a','b','c','d','e','f','g','is','time','an','it','for','and','apple','to','do','go','school','fish','lefe','right','swim'} #通过数组定义词组#
#读取aaa.txt内容#
def gettxt():
sep=".,:;?!-_'”"
txt=open('aaa.txt','r',encoding='utf-8').read().lower()
for ch in sep :
txt=txt.replace(ch,' ')
return txt
#获取aaa.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])