集合類型及操作
集合類型定義
????集合是多個(gè)元素的無序組合邑闺,與數(shù)學(xué)中的集合概念一致
????元素是唯一的跌前,不存在相同的元素
????集合元素不可更改,不能是可變數(shù)據(jù)類型
????集合用大括號(hào){}表示陡舅,元素間用都逗號(hào)分隔
????建立集合用{}或set()
????建立空集合時(shí)必須使用set()函數(shù)
集合操作符
????S|T:并運(yùn)算:返回一個(gè)新集合抵乓,包括集合S和T中的所有元素
????S-T:差運(yùn)算:返回一個(gè)新集合,包括在集合S但不在T中的元素
????S&T:交運(yùn)算:返回一個(gè)新集合靶衍,包括同時(shí)在集合S和T中相同的元素
????S^T:補(bǔ)運(yùn)算:返回一個(gè)新集合灾炭,包括集合S和T中不相同的元素
????S<T,S>=T:比較:返回True/False,判斷S和T的子集關(guān)系或包含關(guān)系
集合處理方法
????S.add(x):如果集合X不在集合中颅眶,將X增加到S
????S.discard(x):移除S中元素x蜈出,如果x不在集合s中,不報(bào)錯(cuò)
????S.remove(x):移除S中元素x涛酗,如果x不在集合s中铡原,產(chǎn)生keyError異常
????S.copy():返回集合S的一個(gè)副本
????len(S):返回集合S的元素個(gè)數(shù)
????x in S:判斷S中元素x,x在集合S中商叹,返回True燕刻,否則返回False
????x not in S:與上相反
????set(x):將其他類型變量x轉(zhuǎn)變?yōu)榧项愋?/p>
集合類型的應(yīng)用前景
????數(shù)據(jù)之間的關(guān)系比較
????數(shù)據(jù)去重
實(shí)例9:基本統(tǒng)計(jì)值計(jì)算
問題分析:
????需求:給出一組數(shù)據(jù),對它們有個(gè)概要理解
????????總個(gè)數(shù):len()
????????求和:for ... in
????????平均值:求和/總個(gè)數(shù)
????????方差:各數(shù)據(jù)與平均數(shù)的差的平方的和的平均數(shù)
????????中位數(shù):排序剖笙,奇數(shù)找中間一個(gè)酌儒,偶數(shù)找中間兩個(gè)取平均
技術(shù)能力擴(kuò)展
????獲取多個(gè)數(shù)據(jù):從控制臺(tái)獲取多個(gè)不確定數(shù)據(jù)的方法(while語句,并保存在列表中)
????分隔多個(gè)函數(shù):模塊化設(shè)計(jì)方法
????充分利用函數(shù):充分利用Python提供的內(nèi)部函數(shù)
字典類型及操作
字典類型定義
????映射:是一種鍵(索引)和值(數(shù)據(jù))的對應(yīng)關(guān)系
????鍵值對:鍵是數(shù)據(jù)索引的擴(kuò)展
????字典是鍵值對的集合枯途,鍵值對之間無序
????采用大括號(hào){}和dict()創(chuàng)建忌怎,鍵值對用冒號(hào):表示
????通過鍵可以獲得值
字典處理函數(shù)及方法
????del d[k]:刪除字典d鍵k對應(yīng)的數(shù)據(jù)集
????k in d:判斷鍵k是否在字典d中,如果在返回True酪夷,否則False
????d.key():返回字典d中所有的鍵信息
????d.values():返回字典d中所有的值信息
????d.get(k, <default>:鍵k存在榴啸,則返回相應(yīng)值,不在則返回<default>值
????d.pop(k, <default>:鍵k存在晚岭,則取出相應(yīng)值鸥印,不在則返回<default>值
????d.popitem():隨機(jī)從字典d中取出一個(gè)鍵值對,以元組的形式返回
????d.clear:刪除所有的鍵值對
????len(d):返回字典d中元素的個(gè)數(shù)
字典類型的應(yīng)用場景
????統(tǒng)計(jì)數(shù)據(jù)出現(xiàn)的次數(shù),數(shù)據(jù)是鍵库说,次數(shù)是值
模塊5:jieba
jieba庫概述:是優(yōu)秀的中文分詞第三方庫
????中文文本需要通過分詞獲得單個(gè)的詞語
????提供三種分詞模式狂鞋,最簡單只需要掌握一個(gè)函數(shù)
????pip install jieba
????利用一個(gè)中文詞庫,確定漢字之間的關(guān)聯(lián)概率潜的,概率大的組成詞組骚揍,形成分詞結(jié)果
????用戶還可以添加自定的詞組
jieba分詞的三種模式
????精確模式:把文本精確的切分,不存在冗余單詞
????全模式:把全文中所有可能的詞組都掃描出來啰挪,有冗余
????搜索引擎模式:在精確模式基礎(chǔ)上信不,對長詞再次切分
jieba庫常用函數(shù)
????jieba.lcut(s):精確模式,返回一個(gè)列表類型的分詞結(jié)果
????jieba.addword(w):向分詞詞典增加新詞
實(shí)例10:文本詞頻統(tǒng)計(jì)
需求:一篇文章亡呵,出現(xiàn)了哪些詞抽活?哪些詞出現(xiàn)得最多?
????哈姆雷特
????三國演義
Hamlet英文詞頻統(tǒng)計(jì):CalHamletV1.py
三國演義人物出場統(tǒng)計(jì):CalThreeKingdomsV1.py
????將詞頻與人物相關(guān)聯(lián)