python的常用函数库_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 = '

ssss<\html><\title>'re.search(r'<.+>',s)

#输出: '

ssss<\html><\title>'

启用非贪婪模式

re.search(r'<.+?>', s)

#输出:

命令

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"""

defargsParser():

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

importjieba

words= jieba.cut(字符串, cut_all=True) #全模式分词 (信息检索中常用)

words = jieba.cut(字符串, cut_all=False) #精确模式分词(默认)

#支持并行分词

jieba.enable_paralle(4)#支持自定义词典

filename = '词典路径'jieba.load_userdict(filename)

#词性标注

importjieba.posseg as pseg

word= pseg.cut('我来到北京清华大学')for word, flag inwords:print("%s %s"%(word, flag))

2. 画图:matplotlib

3. 网络库:requests

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值