亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python進階必讀的書是什么

發布時間:2021-11-23 16:35:03 來源:億速云 閱讀:158 作者:iii 欄目:大數據

本篇內容介紹了“Python進階必讀的書是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

python cookbook 一書非常經典,作者David Beazley,擁有超過20年的Python使用經驗,再加上他很強的寫作技能,所以值得一看。

它的翻譯版本也有很多,其中比較優秀的版本是yidao620c翻譯的,今天查閱翻譯作者,就職華為。當然,最重要的還是書的內容好,這種按照一個小的話題展開討論的方式,相信很多Python愛好者都比較喜歡。

這本書的話題要想理解透,還是需要具備一定的Python基礎,不太適合純Python小白。下面說說這本書,到底好在哪里,該怎么使用。

這是它的整體大綱目錄,一共包括十五章,分別討論:數據結構,字符串,數字,迭代器和生成器,文件與IO,函數、類、模塊,網絡編程,并發與測試。這些都屬于Python中最最核心的知識模塊,原書作者David個人推薦解決現實問題時,優先考慮Python中內置的模塊是否能解決問題。

那么這本書到底好在哪里呢?它分話題展開討論,每個話題都足夠精簡,無廢話。最大限度的從實際應用總結每個知識點,比如在話題:保留最后N個元素時,編寫的代碼就很漂亮:

from collections import deque

def search(lines, pattern, history=5):
    previous_lines = deque(maxlen=history)
    for line in lines:
        if pattern in line:
            yield line, previous_lines
        previous_lines.append(line)

# Example use on a file
if __name__ == '__main__':
    with open(r'../../cookbook/somefile.txt') as f:
        for line, prevlines in search(f, 'python', 5):
            for pline in prevlines:
                print(pline, end='')
            print(line, end='')
            print('-' * 20)
 

保留有限歷史記錄正是 collections.deque 大顯身手的時候,難得是作者會對上面的代碼做了簡要的分析:

我們在寫查詢元素的代碼時,通常會使用包含 yield 表達式的生成器函數,也就是我們上面示例代碼中的那樣。這樣可以將搜索過程代碼和使用搜索結果代碼解耦

讓我們真正明白到底好在哪里,以及Python內置的模塊真的很強大。

再比如作者在討論查找最大或最小的 N 個元素這個話題時,表面上這是一個很簡單的話題,其實如果要考慮的全面,也是需要留意一些事情的。作者分別討論了:

  • 當查找元素個數N = 1時,建議直接使用maxmin方法

  • 當查找元素個數接近整個列表長度時,建議使用sorted函數以切片的方式獲取

  • 當要查找的元素個數相對比較小的時候,函數 nlargest()nsmallest() 是很合適的

相信大家都對前兩種情況的解決方法比較熟悉,第三種使用內置模塊heapq是算法中的堆結構,常見的大根堆,小根堆,

>>> nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
>>> import heapq
>>> heap = list(nums)
>>> heapq.heapify(heap)
>>> heap
[-4, 2, 1, 23, 7, 2, 18, 23, 42, 37, 8]
>>>
 

Python中heapify后,默認建立一個小根堆。它最重要的特征是 heap[0] 永遠是最小的元素。

Python進階必讀的書是什么

比如,如果想要查找最小的 3 個元素,你可以這樣做,首先執行一次heappop后,次小元素變為最小,如下圖所示:

>>> heapq.heappop(heap)
-4
 

Python進階必讀的書是什么

再次執行兩次后,就能得到列表的前三個最小的元素為[-4,1,2],此時的小根堆為如下圖所示:

>>> heapq.heappop(heap)
1
>>> heapq.heappop(heap)
2
 

Python進階必讀的書是什么

當然,也可以直接使用nsmallest獲取前幾個最小值。

“Python進階必讀的書是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永安市| 辽阳县| 马关县| 绥阳县| 鄂温| 当阳市| 永新县| 武强县| 双峰县| 福建省| 龙州县| 潞西市| 济南市| 弥渡县| 中卫市| 法库县| 芜湖县| 黄龙县| 台北市| 博客| 泽库县| 宁城县| 朔州市| 手机| 井研县| 山东省| 马公市| 玉林市| 新昌县| 南部县| 抚远县| 崇州市| 静乐县| 云浮市| 怀仁县| 河池市| 牙克石市| 台南市| 江源县| 鹤庆县| 满城县|