天天看點

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

作業來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2753

一.清單,元組,字典,集合分别如何增删改查及周遊。

1、清單

增:

list=['a','b','c']
list.append(['d','q'])
list.extend(['e','f'])
list.insert(0,1)      
複合資料類型,英文詞頻統計

删:

list=['a','b','c','d','e','f']
del list[0]
list.pop()
list.remove('e')
list.clear()
      

  

查:

print(list)
print(list[0])      
複合資料類型,英文詞頻統計

改:

list=['a','b','c','d','e','f']
list[0]=1
print(list)      
複合資料類型,英文詞頻統計

周遊:

for i in list:
    print(i,end='')
for i in range(len(list)):
    print(list[i],end='')
for index,value in enumerate(list):
    print(index,value)      
複合資料類型,英文詞頻統計

2、元組

tupA=('a','b','c','d','e','f')
tupB=('q','m')
tupC=tupA+tupB
print(tupC)      
複合資料類型,英文詞頻統計
del tupC      
print(tupC)
print(tupC[0])       
複合資料類型,英文詞頻統計

元組不能修改

for i in tupA:
    print(i,end='')
for i in range(len(list)):
    print(tupA[i],end='')
for index,value in enumerate(tupA):
    print(index,value)       
複合資料類型,英文詞頻統計

3、字典

dict={'a':1,'b':2,'c':3,'d':4}
dict['e']=5
dict.update({'f':6,'g':7})
print(dict)      
複合資料類型,英文詞頻統計
dict={'a':1,'b':2,'c':3,'d':4}
del dict['a']
dict.pop('d')
print(dict)      
複合資料類型,英文詞頻統計
dict={'a':1,'b':2,'c':3,'d':4}
print(dict['a'])      
複合資料類型,英文詞頻統計
dict={'a':1,'b':2,'c':3,'d':4}
dict.update({'a':9999})
dict['b']=999
print(dict)      
複合資料類型,英文詞頻統計
dict={'a':1,'b':2,'c':3,'d':4}
for i in dict.items():
    print(i)
for i in dict.keys():
    print(i)
for i in dict.values():
    print(i)
for i,j in dict.items():
    print(i,j)      
複合資料類型,英文詞頻統計

4、集合

set={'a',1,2,'c','d'}
set.update({'qq':1})
set.update([1,2,3])
set.add('bb')
print(set)      
複合資料類型,英文詞頻統計
set={'a',1,2,'c','d'}
set.discard('qqqq')
set.remove('a')
set.pop()
set.clear()
print(set)      
set={'a',1,2,'c','d'}
print(set)       
複合資料類型,英文詞頻統計

沒有修改的方法

set={'a',1,2,'c','d'}
for i in set:
    print(i,end='')
      
複合資料類型,英文詞頻統計

二.總結清單,元組,字典,集合的聯系與差別。

1、清單的括号是"[ ]" ,元組的括号是”( )“,字典的括号和集合的括号都是”{ }“;

2、清單與元組都為有序序列,字典與集合為無序序列;

3、清單、字典、集合屬于可變序列,而元組屬于不可變序列;

4、清單和元組允許重複,而字典和集合不允許重複;

5、清單和元組是可以根據下标進行查找,但元組不可修改,清單可以,字典可根據字典的鍵名查找相應的值,集合是不允許通過下标進行查詢的。

三.詞頻統計

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 
代碼如下:
      
import pandas as pd
file=open('artical.txt',encoding='utf-8')
text=file.read()
text=text.lower()
for i in str('''?!",.'''):
    text=text.replace(i,'')
text=text.split()

# 統計單詞數量
exclude = ['a', 'the', 'and', 'if', 'you', 'in', 'but', 'not', 'it', ' s', 'if', "i"]
dict={}
for i in text:
    if i not in exclude:
       if i not in dict:
         dict[i]=text.count(i)
print(dict)

# 排序單詞數量
word=list(dict.items())
word.sort(key=lambda x: x[1], reverse=True)
print(word)

# 輸出前二十位的單詞
for i in range(20):
   print(word[i])

pd.DataFrame(data=word).to_csv('b.csv',encoding='utf-8')
      
運作結果:


        
複合資料類型,英文詞頻統計
生成csv檔案如下:      
複合資料類型,英文詞頻統計
生成詞雲如下:      
複合資料類型,英文詞頻統計