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
python常用库函数 - 备忘的更多相关文章
- Python常用方法库备忘(一)_当前路径下文件夹和文件
#!/usr/bin/env python # -*- coding:utf-8 -*- # --------------*-------------- # @Author : AilF # @Tim ...
- metasploit 常用命令备忘
metasploit 常用命令备忘 MSFconsole Commands-------------------------------------24show exploits 查看所有exp ...
- Linux基础之常用基本命令备忘
Linux基础之常用基本命令备忘 PWD 查询当前所在Linux上的位置 / 根目录 CD(change directory)切换目录 语法 CD /(注意添加空格) LS ...
- Webstorm常用快捷键备忘(Webstorm入门指南)
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...
- sublime 常用快捷键备忘
转一篇sublime常用的快捷键备忘 sublime常用快捷键 选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本 ...
- Webstorm常用快捷键备忘
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...
- Axure常用操作备忘
目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...
- python之正则表达式备忘
一简介:就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C ...
- CentOS常用命令备忘
1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...
随机推荐
- 刷shipid 简便方法
将表中的数据手动更改: select * from cmpps025 where pino = ''; insert into cmpps025 select ncmp, pino, pono, i ...
- java将图片传为设定编码值显示(可做刺绣)
import java.awt.Color; import java.awt.image.BufferedImage;import java.io.File;import java.io.IOExce ...
- 【机器学习】主成分分析法 PCA (II)
主成分分析法(PAC)的优化——选择主成分的数量 根据上一讲,我们知道协方差为① 而训练集的方差为②. 我们希望在方差尽可能小的情况下选择尽可能小的K值. 也就是说我们需要找到k值使得①/②的值尽可能 ...
- Chapter5_初始化与清理_用构造器初始化
接下来进入第五章,java中初始化和清理的问题,这是两个涉及安全的重要命题.初始化的功能主要是为库中的构件(或者说类中的域)初始化一些值,清理的功能主要是清除程序中不再被需要的元素,防止资源过分被垃圾 ...
- 对Java单例设计模式中懒汉式类定义的讨论
全世界人民都知道单例设计模式中类的定义分为懒汉式和饿汉式两种,然而今天并不是要把它们做横向比较.实际上,不论饿汉式类的代码看起来有多么美轮美奂,在实际开发中它的效率总是不如懒汉式的.然而在笔试和面试中 ...
- django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: ...
出现此问题的解决方法: 在mysql中创建一个和settings.py里设置的mysql 'name'名字一样的数据库就可以了.
- 常用API String
Java的API以及Object类 Java的API Java的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JD ...
- php学习备注笔记
一: PHP内核相关 http://blog.csdn.net/ywh147/article/details/40188411 [深入PHP内核(二)——SAPI探究] http://www.nowa ...
- UGUI小技巧之Text随文本内容自动变化大小
看了网上很多帖子,都是说在 Text 上面加上 Content Size Fitter 组件,并将对应的轴向改成 Preferred size 就可以实现 Text 大小随着文本内容自适应,如下图: ...
- STM32CubeMX HAL库串口+DMA数据发送不定长度数据接收
参考资料:1.ST HAL库官网资料 2.https://blog.csdn.net/u014470361/article/details/79206352#comments 一.STM32CubeM ...