干貨|Python學(xué)習(xí)必須精通的幾個(gè)模塊
定義
Python 模塊(Module),是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對(duì)象定義和Python語(yǔ)句。
模塊讓你能夠有邏輯地組織你的 Python 代碼段。
把相關(guān)的代碼分配到一個(gè)模塊里能讓你的代碼更好用,更易懂。
模塊能定義函數(shù),類(lèi)和變量,模塊里也能包含可執(zhí)行的代碼。
那廢話(huà)不多說(shuō),給大家?guī)?lái)幾個(gè)必須學(xué)會(huì)的python模塊吧。
re
- re的matche方法和search方法
- re的split,findall,finditer方法
re.split(pattern, string[, maxsplit])
按照能夠匹配的子串將string分割后返回列表。maxsplit用于指定***分割次數(shù),不指定將全部分割。
re.findall(pattern, string[, flags])
搜索string,以列表形式返回全部能匹配的子串
re.finditer(pattern, string[, flags])
搜索string,返回一個(gè)順序訪(fǎng)問(wèn)每一個(gè)匹配結(jié)果(Match對(duì)象)的迭代器
collections
- namedtuple
namedtuple是一個(gè)函數(shù),它用來(lái)創(chuàng)建一個(gè)自定義的tuple對(duì)象,并且規(guī)定了tuple元素的個(gè)數(shù),并可以用屬性而不是索引來(lái)引用tuple的某個(gè)元素。
這樣一來(lái),我們用namedtuple可以很方便地定義一種數(shù)據(jù)類(lèi)型,它具備tuple的不變性,又可以根據(jù)屬性來(lái)引用,使用十分方便。
- deque
使用list存儲(chǔ)數(shù)據(jù)時(shí),按索引訪(fǎng)問(wèn)元素很快,但是插入和刪除元素就很慢了,因?yàn)閘ist是線(xiàn)性存儲(chǔ),數(shù)據(jù)量大的時(shí)候,插入和刪除效率很低。
deque是為了高效實(shí)現(xiàn)插入和刪除操作的雙向列表,適合用于隊(duì)列和棧:
- defaultdict
使用dict時(shí),如果引用的Key不存在,就會(huì)拋出KeyError。如果希望key不存在時(shí),返回一個(gè)默認(rèn)值,就可以用defaultdict:
functools
- partial函數(shù)
partial函數(shù)可以重新綁定函數(shù)的可選參數(shù),生成一個(gè)callable的partial對(duì)象:
- update_wrapper函數(shù)
update_wrapper函數(shù)可以把被封裝函數(shù)的__name__、__module__、__doc__和 __dict__都復(fù)制到封裝函數(shù)去:
- wraps函數(shù)
wraps函數(shù)將update_wrapper也封裝了進(jìn)來(lái):