1.清單,元組,字典,集合分别如何增删改查及周遊。
-
清單
增:list是一個可變的有序表,是以,可以往list中追加元素到末尾:
classmates.append('Adam')
删:要删除list末尾的元素,用
pop()
方法;要删除指定位置的元素,用
pop(i)
方法,其中
i
是索引位置;
改:要把某個元素替換成别的元素,可以直接指派給對應的索引位置:
classmates[1] = 'Sarah' 查:變量 classmates 就是一個list。用 len() 函數可以獲得list元素的個數;
-
元組
元組定義以後是不可以變的,沒有删除,增加的機能。
改:不可以改tupple的元素,可以改指向的list的本身。
查:與list基本一緻
-
字典
增:原有dict['key']="value",如
dict['School'] = "RUNOOB" # 添加
删:
del dict['Name'] # 删除鍵是'Name'的條目
dict.clear() # 清空詞典所有條目
del dict # 删除詞典
改:用指派号進行修改其中的值
查:可根據key值查找
-
集合
增:set=set(["1","2","3","4","5"]);
删:set.remove(key)
改:str是不變對象,而list是可變對象。
2.總結清單,元組,字典,集合的聯系與差別。參考以下幾個方面:
-
清單(list):清單是一組有序項目的數字結構,清單的項目應該放在方括号[ ]中,清單是可以被改變和可重複的;按照索引的方式查找通過偏移存儲并且元素可以任意類型存在。
元組(tuple):元組與清單十分相似,可重複也是通過偏移的方式進行存儲,不過元組是不可變的即是你是不能對元組中的元素進行修改,而且用的是();元組的元素是固定的長度、異構,也是任意嵌套。
字典(dict):字典使用的是{},字典是無序的,但是可變可重複;使用鍵-值(key-value)進行存儲,查找速度快;字典的key是不能變的,list不能作為key,字元串、元祖、整數等都可以。
集合(set):無序不可變,使用([ ]),與字典類似,但隻包含鍵,而沒有對應的值;元素可以是清單、元組、字典中的任意一個或多個。
存儲與查找方式
清單(list) | 元組(tuple) | 集合(set) | 字典(dict) | |
括号 | [ ] | () | ([]) | {} |
有無序 | 有 | 無 | ||
可不可變 | 可變 | 不可變 | ||
是否重複 | 是 | 否 | ||
查找方式 | 索引 | 鍵值 |
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
if __name__ == '__main__':fo = open("oldman.txt", 'r' ,encoding="utf-8")
#讀取英文文章
text = fo.read()
#大寫轉小寫
text = text.lower()
#停用清單
strs = {",", '.', "?", "!", ';'}
stops = {'one','this','and','"i','them','what','will','am','from','when','who','him','do','had','no','if','they','as','all','so','very','is','his','by','but','to','of','he','that','you','was','it','the','a','i','in','my','not','have','are','me','for','be','at','on','with'}
#替換符号為空格
for str in strs:
text = text.replace(str, "")
#分割單詞
text = text.split()
#轉為集合
spliText = set(text)
spliText = spliText - stops
#統計詞頻
textS = {}#轉化為字典
for i in spliText:
count = text.count(i)
textS[i] = count
#排序輸出
textS = sorted(textS.items(), key=lambda text:text[1],reverse= True)
print(textS[0:10],"\n",textS[10:20])
#輸出到csv檔案
pd.DataFrame(data=textS).to_csv('out.csv',encoding='utf-8')
生成的詞雲

import pandas as pd
pd.DataFrame(data=word).to_csv('big.csv',encoding='utf-8')
線上工具生成詞雲:
https://wordart.com/create