2019-07-30

1. 篩選三國云詞中的人物名字TOP15

import jieba
from wordcloud import WordCloud

#1.讀取小說內(nèi)容
with open('./novel/threekingdom.txt','r', encoding='utf-8') as f:
    words = f.read()

    counts = {} #{'name':出現(xiàn)次數(shù),'name':出現(xiàn)

    #2. 分詞
    words_list = jieba.lcut(words)
    print(words_list)
    for word in words_list:
        if len(word) <= 1:
            continue
        else:
            # 更新字典中的值
            # counts[word] = 取出字典中原來鍵對應(yīng)的值 + 1
            # counts[word] = counts[word] + 1  # counts[word]如果沒有就要報(bào)錯(cuò)
            # 字典款筑。get(k) 如果字典中沒有這個(gè)鍵 返回 NONE
            counts[word] = counts.get(word, 0)+1


    print(counts)

    #3.詞語過濾棚放,刪除無關(guān)詞倦春,重復(fù)詞
    #排除前15中不是人物名字的詞語
    excludes={"將軍","卻說","丞相","二人","不可","荊州","孔明曰","不能","玄德曰","如此","商議","如何","主公","軍士","軍馬",
              "左右","次日","引兵","大喜","天下","東吳","于是","今日","不敢","魏兵",
              "陛下","都督","人馬","不知","漢中","一人","只見","眾將",
              "后主", "大叫", "上馬", "此人", "先主", "太守","天子",
              }

    counts['孔明'] = counts['孔明'] + counts['孔明曰']
    counts['玄德'] = counts['玄德'] + counts['玄德曰'] + counts['劉備']
    counts['關(guān)公'] = counts['關(guān)公'] + counts['云長']
    for word in excludes:
        del counts[word]

    #4.排序[(), ()]
    items = list(counts.items())
    print(items)

    def sort_by_count(x):
        return x[1]
    items.sort(key=sort_by_count, reverse=True)


    #取前15
    li = []  # ['孔明'蜒茄, 孔明梅垄, 孔明厂捞,孔明...., '曹操'。队丝。靡馁。。机久。]
    for i in range(14):
        #序列解包
        role, count = items[i]
        print(role, count)
        # _ 是告訴看代碼的人臭墨,循環(huán)里面不需要使用臨時(shí)變量
        for _ in range(count):
            li.append(role)

    #5.得出結(jié)論
    text = ' '.join(li)
    WordCloud(
        font_path='msyh.ttc',
        background_color='white',
        width=800,
        height=600,
        # 相鄰兩個(gè)重復(fù)詞之間的匹配
        collocations=False
    ).generate(text).to_file('TOP15.png')
TOP15.png

2. lambda表達(dá)式

lambda表達(dá)式,通常是不想費(fèi)神去命名一個(gè)函數(shù)膘盖,并且這個(gè)函數(shù)只使用一次的場合下使用胧弛,也就是指匿名函數(shù)。一個(gè)lambda表達(dá)式的參數(shù)可以是無限多個(gè)侠畔。

  • 運(yùn)用示例
#示例1:使用lambda實(shí)現(xiàn)加法運(yùn)算
sum_num = lambda x1,x2 : x1+x2
print(sum_num(2,3))

#示例2:使用lambda表達(dá)式為列表排序
name_info_list =[
    ("張三",4500),
    ("李四",6800),
    ("王五",3000),
    ("趙六",5000)
]
name_info_list.sort(key=lambda x:x[1],reverse=True)
print(name_info_list)

#示例3:使用lambda表達(dá)式為列表排序
stu_info =[
    {"name":"zhangsan", "age":18},
    {"name":"lisi", "age":30},
    {"name":"wangwu", "age":26},
    {"name":"zhaoliu", "age":19}
]
stu_info.sort(key=lambda i:i["age"])
print(stu_info)

3. Python推導(dǎo)式

推導(dǎo)式(又稱解析式)结缚,是可以從一個(gè)數(shù)據(jù)序列構(gòu)建另一個(gè)新的數(shù)據(jù)序列的結(jié)構(gòu)體。

  • 列表推導(dǎo)式
    使用普通for循環(huán)生成列表和使用推導(dǎo)式生成列表的比較
# 創(chuàng)建列表
li = []
for i in range(10):
    li.append(i)
print(li)

print([i for i  in range(10)]) #使用推導(dǎo)式

# 篩選出列表中所有的偶數(shù)
li = []
for i in range(10):
    if i%2 == 0:
        li.append(i)
print(li)

print([i for i in range(10) if i%2 == 0]) #使用推導(dǎo)式
# 使用推導(dǎo)式篩選出列表中 大于0 的數(shù)
from random import randint
num_list = [randint(-10, 10) for _ in range(10)]
print(num_list)
print([i for i in num_list if i>0])
  • 字典推導(dǎo)式
# 生成100個(gè)學(xué)生的成績
stu_grades = {'student{}'.format(i):randint(50, 100) for i in range(1, 101)}
print(stu_grades)

# 篩選大于 60分的所有學(xué)生
print({k: v for k, v in stu_grades.items() if v >60})
  • 集合推導(dǎo)式

集合推導(dǎo)式類似與列表推導(dǎo)式软棺,區(qū)別在于{}红竭。

squared = {x**2 for x in [1, 1, 2]}
print(squared)

4. 數(shù)據(jù)可視化展示

Matplotlib是 Python 的繪圖庫, 它可與 NumPy 一起使用喘落。能夠創(chuàng)建多數(shù)類型的圖表茵宪,如曲線圖,散點(diǎn)圖瘦棋,柱狀圖稀火,餅圖,堆疊圖兽狭,3D 圖和地圖圖表憾股。

  • 曲線圖
from matplotlib import pyplot as plt      #導(dǎo)入matplotlib包
import numpy as np

#設(shè)置rc參數(shù)顯示中文標(biāo)題
#設(shè)置字體為SimHei顯示中文
plt.rcParams["font.sans-serif"] = ['SimHei']
#設(shè)置正常顯示字符
plt.rcParams['axes.unicode_minus'] = False

#  使用100個(gè)點(diǎn) 繪制 [0 , 2π]正弦曲線圖
#.linspace 左閉右閉區(qū)間的等差數(shù)列
x = np.linspace(0, 2*np.pi, num=100)
print(x)
y = np.sin(x)
#  正弦和余弦在同一坐標(biāo)系下
cosy = np.cos(x)
plt.plot(x, y, color='g', linestyle='--',label='sin(x)')    #顏色:綠色鹿蜀;線條樣式:虛線箕慧;繪制sin曲線
plt.plot(x, cosy, color='r',label='cos(x)')  #顏色:紅色服球;繪制cos曲線
plt.xlabel('時(shí)間(s)')    #x軸單位
plt.ylabel('電壓(V)')     #y軸單位
plt.title('歡迎來到python世界')    #標(biāo)題
# 圖例
plt.legend()
plt.show()
正弦、余弦曲線圖
  • 柱狀圖
# 柱狀圖
import string
from random import randint
# print(string.ascii_uppercase[0:6])
# ['A', 'B', 'C'...]
x = ['口紅{}'.format(x) for x in string.ascii_uppercase[:5] ]
y = [randint(200, 500) for _ in range(5)]
print(x)
print(y)
plt.xlabel('口紅品牌')
plt.ylabel('價(jià)格(元)')
plt.bar(x, y)
plt.show()
條形圖
  • 餅圖
#餅圖
from random import randint
import string
counts = [randint(3500, 9000) for _ in range(6)]
labels = ['員工{}'.format(x) for x in string.ascii_lowercase[:6] ]
# 距離圓心點(diǎn)距離
explode = [0.1,0,0, 0, 0,0]
colors = ['red', 'purple','blue', 'yellow','gray','green']
plt.pie(counts,explode = explode,shadow=True, labels=labels, autopct = '%1.1f%%',colors=colors)
plt.legend(loc=2)
plt.axis('equal')
plt.show()
餅圖
  • 散點(diǎn)圖
# 散點(diǎn)圖
#均值為 0 標(biāo)準(zhǔn)差為1 的正太分布數(shù)據(jù)
x = np.random.normal(0, 1, 100)
y = np.random.normal(0, 1, 100)
# alpha透明度
plt.scatter(x, y, alpha=0.5)
plt.show()

透明度為0.5的散點(diǎn)圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颠焦,一起剝皮案震驚了整個(gè)濱河市斩熊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伐庭,老刑警劉巖粉渠,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異圾另,居然都是意外死亡霸株,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進(jìn)店門集乔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來去件,“玉大人,你說我怎么就攤上這事扰路∮攘铮” “怎么了?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵汗唱,是天一觀的道長宫莱。 經(jīng)常有香客問我,道長哩罪,這世上最難降的妖魔是什么授霸? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮际插,結(jié)果婚禮上绝葡,老公的妹妹穿的比我還像新娘。我一直安慰自己腹鹉,他們只是感情好藏畅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著功咒,像睡著了一般愉阎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上力奋,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天榜旦,我揣著相機(jī)與錄音,去河邊找鬼景殷。 笑死溅呢,一個(gè)胖子當(dāng)著我的面吹牛澡屡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咐旧,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼驶鹉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铣墨?” 一聲冷哼從身側(cè)響起室埋,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伊约,沒想到半個(gè)月后姚淆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屡律,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年腌逢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片超埋。...
    茶點(diǎn)故事閱讀 38,712評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搏讶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纳本,到底是詐尸還是另有隱情窍蓝,我是刑警寧澤,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布繁成,位于F島的核電站吓笙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏巾腕。R本人自食惡果不足惜面睛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尊搬。 院中可真熱鬧叁鉴,春花似錦、人聲如沸佛寿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冀泻。三九已至常侣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弹渔,已是汗流浹背胳施。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肢专,地道東北人舞肆。 一個(gè)月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓焦辅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親椿胯。 傳聞我的和親對象是個(gè)殘疾皇子筷登,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 學(xué)習(xí)Python的第三天 三國TOP10人物分析 讀取小說內(nèi)容 分詞 排序 詞語過濾,刪除無關(guān)詞,重復(fù)詞 得出結(jié)論...
    充話費(fèi)送De閱讀 184評論 0 0
  • 1.列表推導(dǎo)式 列表推導(dǎo)式書寫形式: [表達(dá)式 for 變量 in 列表] 或者 [表達(dá)式 for 變量 in 列...
    涼水孤舟綠水大漠閱讀 383評論 0 0
  • 動態(tài)圖表的制作 E站到底第二十天压状,E站到底馬上就接近尾聲了仆抵,相信每個(gè)人的學(xué)習(xí)熱情不會因?yàn)檎n程的結(jié)束而結(jié)束的跟继! 首先...
    楊愛鑫閱讀 241評論 0 0
  • vlookup 可視化种冬、無限變化 輔助列:數(shù)據(jù)、數(shù)據(jù)有效性舔糖、允許:序列娱两、來源:名字區(qū)域,名字就可以篩選 復(fù)制月份表...
    星語西瓜閱讀 141評論 0 0
  • 當(dāng)我寫下這個(gè)標(biāo)題的時(shí)候金吗,我已經(jīng)在白天和黑夜問了自己很多遍十兢,生活的意義到底是什么?人有時(shí)候很奇怪摇庙,會在某些時(shí)候問自己...
    凌云志閱讀 624評論 0 1