1.列表,元組,字典,集合分別如何增刪改查及遍歷。
列表:
list=['30','50'] list.append( '20' )#增加元素 del list[1]#刪除第二個元素 list[1]='10' #更改第二個元素 list.insert(2,'10') #插入列表 list.index('20')#查找元素的位置 list.index['50'] # 查看元素50的位置 list.count('30') #統計元素個數 list.copy()復制列表 for i in list: printf(list[i]) #遍歷
元組:
tr=['30','50'] tr2=['20','30'] 元組不能進行增加和修改刪除元組中的元素,其實就是要把元組看做一個整體,對一個元組進行刪除和增加。 del tr #刪除整個元組 tr3=tr+tr2 #把兩個元組組合在一起,結果為tr3=['30','50','20','30'] printf(tr[0]) #查找元組中的第一個元素 for i in range(len(tr)): printf(tr[i]) #遍歷
字典: d={'a':10,'b':20,'c':30}
d['a']=11 #修改鍵a 的值 del d['a'] #刪除鍵a a=d['a'] #查看鍵a的值 d.clear() #刪除字典中的所有條目
str(d) #輸出字典
for key in d:printf(d[key]) #遍歷
集合:
a=set('a') a.add('b') #增加元素 a.remove('b') 或者 a.discard('b') #刪除元素 a.pop() #隨機刪除元素 集合無序,不能查找和修改指定的元素
2.總結列表,元組,字典,集合的聯系與區別。參考以下幾個方面:
- 括號
列表[]; 元組(); 字典{};集合()或者{}
- 有序無序
列表和元組有序,字典和集合無序
- 可變不可變
列表,字典可變,元組不可變,集合可變也可不變
- 重復不可重復
列表,元組,字典可重復,集合不可重復
- 存儲與查找方式
列表:存儲在連續的內存地址中,利用下標索引號查找。
元組:偏移存取,可以進行索引查找
字典:鍵-值存儲方式 ,通過鍵查找值
集合:存儲的元素是無序且不重復 ,可以通過in或not in查找
3.詞頻統計
-
1.准備utf-8編碼的文本文件 file
2.通過文件讀取字符串 str
3.對文本進行預處理
4.分解提取單詞 list
5.單詞計數字典 set , dict
6.按詞頻排序 list.sort(key=lambda),turple
7.排除語法型詞匯,代詞、冠詞、連詞等無語義詞
8.輸出TOP(20)
- 可視化:詞雲
代碼完整附說明如下所示:
#打開小說文件
f = open("D:\\World.txt", 'r') #定義數組
stop={'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to','my','myself','we','our','ours','ourelves','about','no','nor'} #讀取文件
def gettext(): sep=",.? ?':' !--\!_:" text=f.read().lower() for c in sep: textx=text.replace(c,' ') return textx #對文件進行分解 bList=gettext().split() print(bList) #把分解后的詞語放在一個集合中
bSet=set(bList) print(bSet)
#把停用詞放在集合中
bStop=set(stop) #去處停用詞
bSet=bSet-bStop print(bSet) #定義字典對單詞進行統計
bDict={} for word in bSet: bDict[word]=bList.count(word) print(bDict) print(bDict.items()) word=list(bDict.items()) #對統計結果進行排序
word.sort(key=lambda x:x[1],reverse=True) print(word)
#輸出前20的單詞 for i in range(20): print(word[i])
#對結果輸出到text.csv中
import pandas as pd
pd.DataFrame(data=word).to_csv("D:\\text.csv",encoding='utf-8')
如圖為運行結果顯示
如圖為輸出到csv的統計結果
詞雲如圖所示: