最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python入門之后再看點(diǎn)什么好?

 更新時(shí)間:2018年03月05日 14:54:28   作者:劉志軍  
看完了基礎(chǔ)書(shū),甚至看兩遍了,但自己寫(xiě)的時(shí)候還是沒(méi)思路,我該怎么辦?這篇文章主要介紹了Python入門之后再看點(diǎn)什么好,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

不止一次在微信、知乎有讀者朋友跑過(guò)來(lái)問(wèn):看完了基礎(chǔ)書(shū),甚至看兩遍了,但自己寫(xiě)的時(shí)候還是沒(méi)思路,我該怎么辦?

編程在我看來(lái)就是一門手藝活,絕不是簡(jiǎn)單通過(guò)看書(shū)就能學(xué)會(huì)的,跟學(xué)游泳、學(xué)車、學(xué)鋼琴一個(gè)道理,沒(méi)別的,掌握了最基本的理論之后就是干,只有通過(guò)大量的練習(xí)、實(shí)戰(zhàn)才能掌握編程這門技能,之后再回過(guò)來(lái)頭來(lái)繼續(xù)深入理論

這個(gè)問(wèn)題在知識(shí)星球也同樣被問(wèn),于是在那里我們?cè)O(shè)了每日一題的專題,每周會(huì)出三道題給大家,做完之后要求提交到 GitHub,我會(huì)統(tǒng)一對(duì)代碼進(jìn)行 review。這些題一般都是出自于一些真實(shí)應(yīng)用場(chǎng)景,通過(guò)這種方式來(lái)提高編程水平。

下面這道題我們?cè)谛乔蛑械牡谌},在你往下翻之前,不妨梳理下你的編程思路。

題目:

統(tǒng)計(jì)一個(gè)文件中每個(gè)單詞出現(xiàn)的次數(shù),列出出現(xiàn)頻率最多的5個(gè)單詞。

前言:

這道題在實(shí)際應(yīng)用場(chǎng)景中使用比較廣泛,記得哪里看到說(shuō)李笑來(lái)就利用他的編程技能出版過(guò)一本背單詞的暢銷書(shū),統(tǒng)計(jì)歷年來(lái)四六級(jí)、托福考試中出現(xiàn)的高頻詞匯,學(xué)生根據(jù)詞頻來(lái)記單詞,這種方式深受大家喜歡。這就是一個(gè)把編程技能用來(lái)解決實(shí)際問(wèn)題的典型場(chǎng)景。

所以,哪怕你不是程序員,如果能掌握編程技能的話,也能給你的工作帶來(lái)極大的便利。

另外,在做數(shù)據(jù)分析時(shí),那些詞云效果本質(zhì)上都是基于詞頻統(tǒng)計(jì)來(lái)控制字體的大小,如果你能熟練運(yùn)用Python中的知識(shí)來(lái)解決問(wèn)題的話,那說(shuō)明你真正入門Python了。

分析:

本題主要考察以下幾個(gè)方面的知識(shí)點(diǎn):

1、如何正確讀寫(xiě)文件

在 Python 中讀寫(xiě)文件可以使用內(nèi)置函數(shù)open(),而 open 函數(shù)在python2 和 python3 中有一定的區(qū)別,比如 Python 中可以指定讀寫(xiě)文件的編碼格式,而 Python 則不可以,為了同時(shí)兼容2和3,我們通常會(huì)使用io模塊下面的 open 函數(shù),大家可以查文檔搞清楚它們之間的區(qū)別,培養(yǎng)主動(dòng)學(xué)習(xí)能力和查資料的習(xí)慣。

另外一點(diǎn)是讀寫(xiě)文件完成之后是需要關(guān)閉文件描述符的,除了可以使用 try...except...finally的語(yǔ)法之后,我們還可以使用更優(yōu)雅的 with … as 的語(yǔ)法來(lái)自動(dòng)關(guān)閉文件。

2、如何對(duì)數(shù)據(jù)進(jìn)行排序

sorted函數(shù)是一個(gè)使用頻率很高的內(nèi)置函數(shù),它的用法也很強(qiáng)大,因?yàn)樗梢酝ㄟ^(guò)指定參數(shù) key 來(lái)進(jìn)行自定義排序,也就意味著你不僅可以對(duì)數(shù)字排序、對(duì)字母排序、還可以對(duì)列表、字典、自定義的對(duì)象進(jìn)行排序,你只需要要告訴 sorted 函數(shù)的排序規(guī)則是什么,比如一個(gè)people對(duì)象,我既可以根據(jù)年齡排序也可以根據(jù)身高體重來(lái)排序,所以這個(gè)函數(shù)時(shí)非常靈活的,另外,對(duì)于列表對(duì)象有自帶的 sort 方法,如果能區(qū)分清楚 list.sort 與 sorted 之間區(qū)別那說(shuō)明你已經(jīng)能靈活運(yùn)用了。

3、匿名函數(shù)的使用

剛說(shuō)了sorted函數(shù)可以指定一個(gè)參數(shù)來(lái)控制排序的規(guī)則,這個(gè)參數(shù)可以是一個(gè)函數(shù),這種場(chǎng)景往往匿名函數(shù),就是我們常說(shuō)的lambda函數(shù)顯得很應(yīng)景。

4、字典類型的運(yùn)用

做詞頻統(tǒng)計(jì),用字典無(wú)疑是最合適的數(shù)據(jù)類型,單詞作為字典的key, 單詞出現(xiàn)的次數(shù)作為字典的 value,很方便地就記錄好了每個(gè)單詞的頻率,字典很像我們的電話本,每個(gè)名字關(guān)聯(lián)一個(gè)電話號(hào)碼。另外,字典最大的特點(diǎn)就是它的查詢速度會(huì)非???。理想情況下時(shí)間復(fù)雜度為O(1),我是說(shuō)理想情況,如果你想深入了解字典的話,建議看看這篇文章。Python中提供了豐富的數(shù)據(jù)結(jié)構(gòu),要懂得根據(jù)應(yīng)用場(chǎng)景正確選擇合適的數(shù)據(jù)類型

5、正則表達(dá)式的運(yùn)用

處理文本、字符串,正則表達(dá)式簡(jiǎn)直是神器,無(wú)論是做數(shù)據(jù)爬蟲(chóng)還是表單驗(yàn)證使用非常廣泛,當(dāng)然,正則表達(dá)式并不是 Python 特有的東西,所有編程語(yǔ)言都支持,我們除了學(xué)習(xí)正則表達(dá)式的基本規(guī)則之外就是Python中的re模塊提供的各種函數(shù)了,只有熟悉了API 我們才能運(yùn)用到實(shí)際場(chǎng)景中去。關(guān)于正則表達(dá)式推薦一篇文章:Python正則表達(dá)式操作指南

以上5點(diǎn),每個(gè)點(diǎn)都可以整理出一篇文章出來(lái)

實(shí)現(xiàn):

分析完之后,我們實(shí)現(xiàn)起來(lái)其實(shí)是非??斓?。所以我們?cè)谀玫揭粋€(gè)需求的時(shí)候,首先肯定是把需求弄清楚,想想大概可以用哪些技術(shù)來(lái)實(shí)現(xiàn),隨后才是動(dòng)手寫(xiě)代碼,其實(shí)我們?cè)诠ぷ魃?,真正?xiě)代碼的時(shí)間還不到一半。

# -*- coding:utf-8 -*-
import io
import re

class Counter:
 def __init__(self, path):
 """
 :param path: 文件路徑
 """
 self.mapping = dict()
 with io.open(path, encoding="utf-8") as f:
 data = f.read()
 words = [s.lower() for s in re.findall("\w+", data)]
 for word in words:
 self.mapping[word] = self.mapping.get(word, 0) + 1

 def most_common(self, n):
 assert n > 0, "n should be large than 0"
 return sorted(self.mapping.items(), key=lambda item: item[1], reverse=True)[:n]

if __name__ == '__main__':
 most_common_5 = Counter("importthis.txt").most_common(5)
 for item in most_common_5:
 print(item)
#注:這里的文件是以Python之禪的19條格言保存到文本中進(jìn)行統(tǒng)計(jì)的。

打印結(jié)果:

('is', 10)
('better', 8)
('than', 8)
('the', 6)
('to', 5)

總結(jié)

當(dāng)然,實(shí)現(xiàn)方法不是唯一的。比如Python模塊本身就提供了一個(gè)collections.Counter的類,它繼承自dict類,就是用于做統(tǒng)計(jì)的,細(xì)心的你可能發(fā)現(xiàn)了,我實(shí)現(xiàn)的這個(gè)Counter和collections下面那個(gè)Counter很像,其實(shí)這就是造輪子,造輪子可以鍛煉我們的編程思維,當(dāng)然在工作上有現(xiàn)成的東西就沒(méi)必要自己造輪子了,除非你有信心做得更好。你也可以思考假如Python沒(méi)有提供Counter這個(gè)工具,你該怎么做。

另外,該模塊還提供一個(gè)有序的字典對(duì)象 OrderedDict,使用它可以免去我們手動(dòng)排序的操作。對(duì)于上面提及的知識(shí)點(diǎn)你是否都了然于心了,如果回答是的話,恭喜你,我想你應(yīng)該掌握差不多了,進(jìn)階吧,如果你還有很多不清楚的地方,那么需要你更多的總結(jié)、練習(xí)。

來(lái)源:python之禪

你眼中的Python大牛 應(yīng)該都有這份書(shū)單

Python書(shū)單 不將就

不可錯(cuò)過(guò)的十本Python好書(shū)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用Python生成會(huì)跳舞的美女

    用Python生成會(huì)跳舞的美女

    大家好,本篇文章主要講的是用Python生成會(huì)跳舞的美女,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • python處理xls文件openpyxl基礎(chǔ)操作

    python處理xls文件openpyxl基礎(chǔ)操作

    這篇文章主要為大家介紹了python處理xls文件openpyxl基礎(chǔ)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • python處理寫(xiě)入數(shù)據(jù)代碼講解

    python處理寫(xiě)入數(shù)據(jù)代碼講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python處理寫(xiě)入數(shù)據(jù)代碼講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-10-10
  • python機(jī)器學(xué)習(xí)MATLAB最小二乘法的兩種解讀

    python機(jī)器學(xué)習(xí)MATLAB最小二乘法的兩種解讀

    這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)中MATLAB最小二乘法的兩種解讀方式,有需要的朋友可以借鑒參考下希望能夠有所幫助
    2022-02-02
  • python實(shí)現(xiàn)二叉查找樹(shù)實(shí)例代碼

    python實(shí)現(xiàn)二叉查找樹(shù)實(shí)例代碼

    這篇文章主要介紹了python實(shí)現(xiàn)二叉查找樹(shù)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python Pytest裝飾器@pytest.mark.parametrize詳解

    Python Pytest裝飾器@pytest.mark.parametrize詳解

    本文主要介紹了Python Pytest裝飾器@pytest.mark.parametrize詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實(shí)例

    pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實(shí)例

    今天小編就為大家分享一篇pytorch 數(shù)據(jù)處理:定義自己的數(shù)據(jù)集合實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • Pandas篩選DataFrame含有空值的數(shù)據(jù)行的實(shí)現(xiàn)

    Pandas篩選DataFrame含有空值的數(shù)據(jù)行的實(shí)現(xiàn)

    本文主要介紹了Pandas篩選DataFrame含有空值的數(shù)據(jù)行的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python中使用中文的方法

    Python中使用中文的方法

    python的中文問(wèn)題一直是困擾新手的頭疼問(wèn)題,這篇文章將給你詳細(xì)地講解一下這方面的知識(shí)。當(dāng)然,幾乎可以確定的是,在將來(lái)的版本中,python會(huì)徹底解決此問(wèn)題,不用我們這么麻煩了。
    2011-02-02
  • PyTorch實(shí)現(xiàn)更新部分網(wǎng)絡(luò),其他不更新

    PyTorch實(shí)現(xiàn)更新部分網(wǎng)絡(luò),其他不更新

    今天小編就為大家分享一篇PyTorch實(shí)現(xiàn)更新部分網(wǎng)絡(luò),其他不更新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論

锡林浩特市| 永川市| 平南县| 资中县| 土默特左旗| 越西县| 枣阳市| 济宁市| 垦利县| 含山县| 玉环县| 海兴县| 高州市| 浦江县| 醴陵市| 孙吴县| 江城| 和龙市| 孙吴县| 凤庆县| 桂林市| 集贤县| 万载县| 张家港市| 东方市| 滁州市| 昌都县| 长沙市| 南昌市| 绿春县| 遂平县| 海口市| 怀柔区| 荆门市| 西青区| 五家渠市| 行唐县| 衡东县| 昌乐县| 紫阳县| 梧州市|