大
大家在學習python的過程中,都會了解到python的一個強大的功能在於各種強大的第三方函式庫函數,大家只需要透過pip install 即可安裝我們需要的庫函數。
家往往只是專注於自己安裝的python函式庫,卻忽略了python自帶的函式庫函數,或是python自帶的函式庫,今天小編就為大家介紹一下,十大被低估的python自帶函式庫或者是python自帶的函式。
Counter的主要用途從名字就可以看出,它是用來進行計數統計的,在進行資料分析或統計時,我們經常需要用到計數,而Counter會幫助我們寫出更簡介的程式碼,如下圖。
在上述程式中,可以看到,使用Counter可以用簡單的兩行程式完成字元的統計,並且還可以進行排序輸出的操作,大大簡化了程式碼。
nametuple繼承了tuple類,使用nametuple可以創建一個類對象,並且該對象擁有可以訪問的屬性,這有什麼用處呢,我們利用下面的程序來講解。
上述的程式中,註解的第一段程式並沒有使用nametuple,而當features的特徵數量過多時,我們想使用其中的某一個或某些特徵時,我們不容易取得特徵的索引,從而帶來不必要的麻煩。當我們使用nametuple時,我們可以很輕鬆的透過特徵名稱來存取特定的資料的特徵。
Defaultdict是具有預設初始值的字典,當我們存取defaultdict的鍵值不存在時,它會傳回預設值,例如下面的程式所示:
程式中,我們建立了一個int類型的defaultdict,當我們想要將「python」儲存到字典中去時,dict會報錯,而defaultdict會有初始化的默認值0,從而讓我們輕鬆的按鍵值儲存數值。這裡我們建立的時int類型的defaultdict,所以預設初始值為0,當我們建立list的defaultdict時,預設初始值就是空列表。
Glob模組的用處主要是用來匹配我們指定路徑下的文件信息,並以列表的形式返回匹配到的文件絕對路徑,如下圖所示:
程式中,我們匹配了路徑下的所有jpg和png圖片,並返回了它們的絕對路徑。
Math模組是python自帶的簡單數學函數模組,包含了指數、對數、正弦餘弦等函數。
Argparse模組的使用,一方面可以讓我們編寫命令列接口,大大美化我們的程序,使我們的程式看起來更加的美觀,另一方面也使得我們對於程式的修改也更加的便捷。
在上述程式中,我們定義了兩個參數a和b,並規定它們必須要輸入,argparse會自動解析我們的輸入數據,並轉換為指定的型態(int),然後我們主程式的兩數相加,並輸出結果。在這裡我只是為大家簡單的展示了argparse的功能,其強大的魅力需要在大量的程序中才能體現出來。
對於copy模組,主要涉及到淺拷貝和深拷貝的內容,這裡需要明白淺拷貝和深拷貝的區別,對於深拷貝,無論是對於可變對象還是不可變對象,都是統統的創建一個新的變量,而對於淺拷貝,則較為複雜,如下圖所示:
這裡我們用程式對上述的圖進行解釋,如下圖所示:
如上圖所示,對於不可變對象,淺拷貝只是複製了相同的位址給到拷貝物件。但當我們修改simple_str的值時,copy_simple_str卻沒有改變,這是因為字串是不可變類型,所以修改simple_str的值,編譯器會開闢新的空間,保存simple_str原先的值,讓copy_simple_str指向它。對於複雜的可變類型,從結果可以看出其子物件並沒有被完全複製,因此對copy_complex_dict進行修改,同樣會修改complex_dict中的子物件。
itertools 模組中包含了許多有用的迭代器函數,熟練的運用它們可以極大的提高工作效率。這裡小編簡單的舉幾個itertools使用舉例:
上述的程式中,分別利用permutations來產生所有的排列組合,並使用count函數與zip結合生成序號。要注意的是這裡的permutations和count產生的都是迭代器,從而可以大大的節省記憶體空間。
在python中,enum模組同樣實現了對於枚舉類型的支持,在枚舉集合中,枚舉成員應該是唯一的而且是不可變的。
上圖中我們定義了一個Week的枚舉類,然後透過這個類別來計算出今天之後應該是周幾。
calendar模組用於處理與日曆相關的函數,如我們最常見的判斷是否是閏年,calendar只需要一行程式便可以幫助我們完成計算:
上圖程式中我們分別利用calendar輸出了是否是閏年,以及列印月曆,判斷星期等,利用calendar可以在處理日曆問題上達到事半功倍的效果。
以上10個python模組,是非常有用的python自帶模組,但是在大家平時的編程中卻較少使用,透過小編的講解,希望大家能更多的了解python自帶的強大模組,在以後的編程中不斷的優化自己的程式。
以上是小白必讀!十大被低估的Python自備庫!的詳細內容。更多資訊請關注PHP中文網其他相關文章!