天天看點

複合資料類型

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])      
複合資料類型