python常用庫函數 - 備忘


基礎庫

1. 正則表達式:re

符號

()小括號 -- 分組

[]中括號 -- 字符類,匹配所包含的任一字符 #注:字符集合把【】里面的內容當作普通字符!(-\^除外)

{}大括號 -- 限定匹配次數

| 或 r'AC|D' -> AC或AD

. 匹配任一字符(\ 除外)

\. 匹配字符.

^ 脫字符 匹配輸入字符串的開始位置 # r'^AC'

$ 匹配字符串末尾 # r'AC$'

\b 匹配一個單詞的邊界 (單詞定義為字母,數字,下划線) ;\B 與 \b相反 匹配非單詞邊界

\d 匹配任一數字[0-9] ; \D 與 \d相反,[^0-9]

\s 匹配空白字符【\t \n \r \f \v】;\S與\s相反

\w 匹配字母 數字 下划線(中文也可以) 【a-z A-Z 0-9 _】; \W與\w相反

* 匹配子表達式0次或多次,等價於 {0,}

+ 匹配子表達式1次或多次,等價於 {1, }

? 匹配子表達是0次或1次,等價於{0,1}

貪婪模式

貪婪模式(python正則表達式中默認使用),盡可能多的去匹配

s = '<html><title>ssss<\html><\title>' re.search(r'<.+>',s) #輸出: '<html><title>ssss<\html><\title>'

啟用非貪婪模式

re.search(r'<.+?>', s) # 輸出: <html>

命令

1. re.search()

s = 'Bo ke yuan' result = re.search(r'(\w+) (\w+)', s) result.group() # 'Bo ke' result.group(1) # 'Bo'; result.group(2) # 'ke'  result.start() #0 (匹配起始位置) result.end() #5 (匹配結束位置) result.span() #(0, 5) (匹配范圍)

2. re.findall()

如果給出的正則表達式包含子組,就會把子組的內容單獨返回回來。

若包含多個子組,將匹配的內容組合成元組返回

如何讓子組不捕獲內容?

  非捕獲組(?:) 把所有出現子組的地方都加 ?:

3. re.compile() 編譯正則表達式

如果你需要重復的使用某個正則表達式,那么你可以先將正則表達式編譯成模式對象。

p = re.compile(r'[A-Z]') p.search('Bo Ke Yuan') # ['B'] p.findall('Bo Ke Yuan') # ['B', 'K', 'Y']

 2. 參數:argparse

基本用法:

import argparse # step1. 導入模塊

parser = argparse.ArgumentParser() # step2. 創建參數解析對象

parser.add_argument() # step3. 添加參數
"""位置參數:parser.add_argument("echo", help="參數描述")  必選
    可選參數: parser.add_argument("--verbosity", help="參數描述")  可選
"""

args = parser.parse_args() # step4. 解析參數
"""位置參數訪問:args.echo
    可選參數訪問:args.verbosity
"""
def argsParser():
    parser = argparse.ArgumentParser() 
    parser.add_argument(
        "-t",
        type=str,
        default="train.txt",
        help="訓練文件名 - 支持相對路徑",
    )
    args = parser.parse_args()

return args.t

 

3. 數學函數庫:math

4. 隨機數:random

5. 多線程多進程:subprocess/multiprocessing/threading

6. 小工具(能減少代碼行數):itertools/operator/collections

6.1 collections

c = collections.Counter(參數) 
#參數可以是list、str、tuple、None等等
#作用:統計參數每個元素出現的次數
#返回:一個字典(元素作為key存儲,元素出現次數作為value存儲)

#####例子:
c = Counter('gallahad')
# 輸出: Counter({'a': 3, 'd': 1, 'g': 1, 'h': 1, 'l': 2})

c.update('adc') # 在原來基礎上更新計數(直接修改c)
# 輸出: Counter({'a': 4, 'c': 1, 'd': 2, 'g': 1, 'h': 1, 'l': 2})

c.most_common()
# 輸出:[('a', 4), ('l', 2), ('d', 1), ('g', 1), ('b', 1), ('c', 1), ('h', 1)]
# 相當於字典排序:sorted(c.items(), key=lambda asd:asd[1], reverse=True)

 6.2  itertools

# 格式 itertools.chain(*iterables)
#作用:將多個可迭代的對象轉換成一條鏈
a = [[1, 2, 3], ['a', 'b', 'c']]
itertools.chain(a)
# 結果: 1, 2, 3, 'a', 'b', 'c'

第三方庫

1. jieba

import jieba
words = jieba.cut(字符串, cut_all=True) # 全模式分詞 (信息檢索中常用
words = jieba.cut(字符串, cut_all=False) # 精確模式分詞(默認)

#支持並行分詞
jieba.enable_paralle(4)

#支持自定義詞典
filename = '詞典路徑'
jieba.load_userdict(filename)
#詞性標注
import
jieba.posseg as pseg word = pseg.cut(' 我來到北京清華大學') for word, flag in words: print("%s %s"%(word, flag))

2. 畫圖:matplotlib

3. 網絡庫:requests


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM