天天看點

複合資料類型,英文詞頻統計

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])


結果:

      
複合資料類型,英文詞頻統計
複合資料類型,英文詞頻統計