天天看点

复合数据类型

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])      
复合数据类型