本次作業來源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753
1.清單,元組,字典,集合分别如何增删改查及周遊。
清單:
list=['a','b','c','d','e','f','g','a']
list.append('aa')#增加元素
del list[3]#删除第四個元素
list[4]='egg' #更改第五個元素
list.insert(3,'cat') #插入清單
list.index('f')#查找元素的位置
list.index['g'] # 檢視元素50的位置
list.count('a') #統計元素個數
for i in list: printf(list[i]) #周遊
元組:
元組的操作和清單類似,但是元組不能進行增加和修改删除元組中的元素
list=('a','b')
print(list[0])#通過元組的下标通路元素
字典:
d={'apple':1,'boy':2,'cat':3}
d['apple']=4 #修改鍵apple 的值
del d['apple'] #删除鍵apple
a=d['apple'] #檢視鍵apple的值
d.clear() #删除字典中的所有條目
str(d) #輸出字典for key in d:printf(d[key]) #周遊
集合
z=set('z')
z.add('b') #增加元素
z.pop() #随機删除元素
z.remove('b') #删除元素
集合無序,不能查找和修改指定的元素
2.總結清單,元組,字典,集合的聯系與差別。參考以下幾個方面:
- 括号
- 有序無序
- 可變不可變
- 重複不可重複
- 存儲與查找方式
清單(list):清單是一組有序項目的數字結構,清單的項目應該放在方括号[ ]中,清單是可以被改變和可重複的;按照索引的方式查找通過偏移存儲并且元素可以任意類型存在。
元組(tuple):元組與清單十分相似,可重複也是通過偏移的方式進行存儲,不過元組是不可變的即是你是不能對元組中的元素進行修改,而且用的是();元組的元素是固定的長度、異構,也是任意嵌套。
字典(dict):字典使用的是{},字典是無序的,但是可變可重複;使用鍵-值(key-value)進行存儲,查找速度快;字典的key是不能變的,list不能作為key,字元串、元祖、整數等都可以。
集合(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)
- 9.可視化:詞雲
排序好的單詞清單word儲存成csv檔案
import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')
線上工具生成詞雲:
https://wordart.com/create
exclude={'a','the','and','i','you','in','but','not','with','by','its','for','of','an','to'} #定義數組#
#讀取Harry Potter.txt檔案中的英文内容#
def gettxt():
sep=".,:;?!-_'"
txt=open('faded.txt','r').read().lower()
for ch in sep :
txt=txt.replace(ch,' ')
return txt
#分解提取單詞#
bigList=gettxt().split()
print(bigList);
print('faded:',bigList.count('faded'))
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])
#排序好的單詞清單word儲存成csv檔案#
import pandas as pd
pd.DataFrame(data=word).to_csv('Harry Potter.csv',encoding='utf-8')
