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

Python入門之后再看點什么好?

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

不止一次在微信、知乎有讀者朋友跑過來問:看完了基礎書,甚至看兩遍了,但自己寫的時候還是沒思路,我該怎么辦?

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

這個問題在知識星球也同樣被問,于是在那里我們設了每日一題的專題,每周會出三道題給大家,做完之后要求提交到 GitHub,我會統(tǒng)一對代碼進行 review。這些題一般都是出自于一些真實應用場景,通過這種方式來提高編程水平。

下面這道題我們在星球中的第三題,在你往下翻之前,不妨梳理下你的編程思路。

題目:

統(tǒng)計一個文件中每個單詞出現的次數,列出出現頻率最多的5個單詞。

前言:

這道題在實際應用場景中使用比較廣泛,記得哪里看到說李笑來就利用他的編程技能出版過一本背單詞的暢銷書,統(tǒng)計歷年來四六級、托??荚囍谐霈F的高頻詞匯,學生根據詞頻來記單詞,這種方式深受大家喜歡。這就是一個把編程技能用來解決實際問題的典型場景。

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

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

分析:

本題主要考察以下幾個方面的知識點:

1、如何正確讀寫文件

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

另外一點是讀寫文件完成之后是需要關閉文件描述符的,除了可以使用 try...except...finally的語法之后,我們還可以使用更優(yōu)雅的 with … as 的語法來自動關閉文件。

2、如何對數據進行排序

sorted函數是一個使用頻率很高的內置函數,它的用法也很強大,因為它可以通過指定參數 key 來進行自定義排序,也就意味著你不僅可以對數字排序、對字母排序、還可以對列表、字典、自定義的對象進行排序,你只需要要告訴 sorted 函數的排序規(guī)則是什么,比如一個people對象,我既可以根據年齡排序也可以根據身高體重來排序,所以這個函數時非常靈活的,另外,對于列表對象有自帶的 sort 方法,如果能區(qū)分清楚 list.sort 與 sorted 之間區(qū)別那說明你已經能靈活運用了。

3、匿名函數的使用

剛說了sorted函數可以指定一個參數來控制排序的規(guī)則,這個參數可以是一個函數,這種場景往往匿名函數,就是我們常說的lambda函數顯得很應景。

4、字典類型的運用

做詞頻統(tǒng)計,用字典無疑是最合適的數據類型,單詞作為字典的key, 單詞出現的次數作為字典的 value,很方便地就記錄好了每個單詞的頻率,字典很像我們的電話本,每個名字關聯(lián)一個電話號碼。另外,字典最大的特點就是它的查詢速度會非??臁@硐肭闆r下時間復雜度為O(1),我是說理想情況,如果你想深入了解字典的話,建議看看這篇文章。Python中提供了豐富的數據結構,要懂得根據應用場景正確選擇合適的數據類型

5、正則表達式的運用

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

以上5點,每個點都可以整理出一篇文章出來

實現:

分析完之后,我們實現起來其實是非??斓摹K晕覀冊谀玫揭粋€需求的時候,首先肯定是把需求弄清楚,想想大概可以用哪些技術來實現,隨后才是動手寫代碼,其實我們在工作上,真正寫代碼的時間還不到一半。

# -*- 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條格言保存到文本中進行統(tǒng)計的。

打印結果:

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

總結

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

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

來源:python之禪

你眼中的Python大牛 應該都有這份書單

Python書單 不將就

不可錯過的十本Python好書

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 用Python生成會跳舞的美女

    用Python生成會跳舞的美女

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

    python處理xls文件openpyxl基礎操作

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

    python處理寫入數據代碼講解

    在本篇文章里小編給大家整理的是一篇關于python處理寫入數據代碼講解內容,有興趣的朋友們可以學習下。
    2020-10-10
  • python機器學習MATLAB最小二乘法的兩種解讀

    python機器學習MATLAB最小二乘法的兩種解讀

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

    python實現二叉查找樹實例代碼

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

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

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

    pytorch 數據處理:定義自己的數據集合實例

    今天小編就為大家分享一篇pytorch 數據處理:定義自己的數據集合實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Pandas篩選DataFrame含有空值的數據行的實現

    Pandas篩選DataFrame含有空值的數據行的實現

    本文主要介紹了Pandas篩選DataFrame含有空值的數據行的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • Python中使用中文的方法

    Python中使用中文的方法

    python的中文問題一直是困擾新手的頭疼問題,這篇文章將給你詳細地講解一下這方面的知識。當然,幾乎可以確定的是,在將來的版本中,python會徹底解決此問題,不用我們這么麻煩了。
    2011-02-02
  • PyTorch實現更新部分網絡,其他不更新

    PyTorch實現更新部分網絡,其他不更新

    今天小編就為大家分享一篇PyTorch實現更新部分網絡,其他不更新,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論

岳池县| 双城市| 宜兰市| 石家庄市| 桂林市| 云阳县| 醴陵市| 阳西县| 安岳县| 策勒县| 娱乐| 朝阳县| 英超| 临武县| 江陵县| 松滋市| 家居| 平南县| 南昌市| 同德县| 永川市| 芜湖县| 芷江| 唐海县| 庆元县| 滁州市| 丹巴县| 基隆市| 邵武市| 饶平县| 西盟| 剑阁县| 施甸县| 平遥县| 吉林省| 穆棱市| 如皋市| 涟源市| 建瓯市| 安溪县| 巴彦县|