前言
python發展了很多年,有非常豐富的标準庫子產品,選擇合适的标準庫子產品既可以降低工作量,還能簡化代碼量。
必須了解的标準庫子產品方法整理如下:
- atexit 運作的程式在退出時調用的函數
- argparse 提供了指令行參數解析功能
- bisect 可為排序清單提供二分查找算法
- calendar 提供一組與日期有關的函數
- codecs 提供編解碼資料的函數
- collections提供一組有用的資料結構
- copy 提供複制資料的函數
- csv 提供用于讀寫csv檔案函數
- datetime 提供用于處理日期的和時間的類
- fnmatch 提供用于比對unix風格檔案模式比對函數
- concurrent 提供并發的模式常用函數
- glob 提供用于比對unix風格的路徑子產品
- io提供用于處理I/O流的函數
- json 預設的json庫
- logging 預設的日志庫
- multiprocessing 多程序中常用的工具函數庫
- operator 提供各種運算符的功能函數,比寫lambda簡單了很多
- os 提供作業系統的函數方法
- random預設生成随機數的函數
- re 提供正規表達式功能
- sched 提供一個無須多線程的事件排程器
- select 提供對函數select()和poll()的通路,建立事件循環
- shutil提供進階檔案處理的函數通路
- signal 處理POSIX信号處理
- tempfile 提供用于建立臨時檔案和目錄的函數
- threading 提供進階線程的功能
- urllib 提供處理url解析的各種函數
- uuid 生成全局唯一的uuid辨別
除了标準庫以外日常編碼疊代優化相關庫還有itertools
使用itertools針對疊代有非常好的性能優化和記憶體使用優化,提升處理海量資料效率,是以單獨拿出來推薦。
itertools,是python的一個内置子產品,功能強大,主要用于高效循環建立疊代器。注意一點,他傳回的不是list,而是iterator。
- 無限疊代器:count,cycle,repeat
count示例
- 有限疊代器:chain,groupby,accumulate
把疊代器中相鄰的重複元素挑出來放在一起
- 組合疊代器:product,permutations,combinations
傳回p中任意取r個元素做排列的元組的疊代器
總結
工欲善其事,必先利其器,python的各種标準庫和常用用法是寫好python的基礎,最好每個子產品都手動敲下,日常多用用對于了解python和寫好python會有非常大的幫助。