python 学习备忘
list列表排序
def listdir(path): #返回一个排序后的目录list
files=os.listdir(path)
files.sort(key=lambda x:str(x[:-4]))
return files
生成一个000-999的字符串list列表
print (list('{:0>3}'.format(str(x)) for x in range(1000)))
in [, , ] True 元素是否存在于列表中 for x in [, , ]: print x, 迭代 L = list(range()) [, , , , ..., ] L[:] #前10个数
L[-:] #后10个数
L[:] #前11-20个数
L[::] #前10个数,每两个取一
L[::] #前10个数,每两个取一个:
[, , , , ]
lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>> print reduce(lambda x, y: x + y, foo)
139
>>> f=lambda x,y:x if x >y else y
>>> f(,)
x in y x在y中 -> True; x不在y中 -> False 复制问题 li1 = li2[:] 深拷贝(等同于 li1 = li2.copy()); 浅拷贝li1 = li2(li1会随li2的变化而变) li1.clear() 清空列表,列表仍存在[]
三元操作符
small = x if x < y else y 相当于:
if x < y:
small = x
else:
small = y
from collections import Counter
collections.Counter(参数)
#参数可以是list、str、tuple、None等等
#作用:统计参数每个元素出现的次数
#返回:一个字典(元素作为key存储,元素出现次数作为value存储) #####例子:
c = Counter('gallahad')
# 输出: Counter({'a': , 'd': , 'g': , 'h': , 'l': }) c.update('adc') # 在原来基础上更新计数(直接修改c)
# 输出: Counter({'a': , 'c': , 'd': , 'g': , 'h': , 'l': }) c.most_common()
# 输出:[('a', ), ('l', ), ('d', ), ('g', ), ('b', ), ('c', ), ('h', )]
# 相当于字典排序:sorted(c.items(), key=lambda asd:asd[], reverse=True)
符号
()小括号 -- 分组 []中括号 -- 字符类,匹配所包含的任一字符 #注:字符集合把【】里面的内容当作普通字符!(-\^除外) {}大括号 -- 限定匹配次数 | 或 r'AC|D' -> AC或AD . 匹配任一字符(\ 除外) \. 匹配字符. ^ 脱字符 匹配输入字符串的开始位置 # r'^AC' 匹配字符串末尾 # r'AC匹配字符串末尾 # r'AC' \b 匹配一个单词的边界 (单词定义为字母,数字,下划线) ;\B 与 \b相反 匹配非单词边界 \d 匹配任一数字[-] ; \D 与 \d相反,[^-] \s 匹配空白字符【\t \n \r \f \v】;\S与\s相反 \w 匹配字母 数字 下划线(中文也可以) 【a-z A-Z - _】; \W与\w相反 * 匹配子表达式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>
命令
. re.search() 复制代码
s = 'Bo ke yuan' result = re.search(r'(\w+) (\w+)', s)
result.group() # 'Bo ke'
result.group() # 'Bo'; result.group() # 'ke' result.start() # (匹配起始位置)
result.end() # (匹配结束位置)
result.span() #(, ) (匹配范围)
复制代码
. re.findall() 如果给出的正则表达式包含子组,就会把子组的内容单独返回回来。 若包含多个子组,将匹配的内容组合成元组返回 如何让子组不捕获内容? 非捕获组(?:) 把所有出现子组的地方都加 ?: . re.compile() 编译正则表达式 如果你需要重复的使用某个正则表达式,那么你可以先将正则表达式编译成模式对象。 p = re.compile(r'[A-Z]')
p.search('Bo Ke Yuan') # ['B']
p.findall('Bo Ke Yuan') # ['B', 'K', 'Y']
. 参数: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
"""
正则表达式:re
python 学习备忘的更多相关文章
- Android学习备忘笺01Activity
01.设置视图 在Android Studio新建的项目中,通过 setContentView(R.layout.activity_main);方法将res/layout/activity_main. ...
- leaflet 学习备忘
leaflet 开源js地图工具.非常好用. leaflet参考:http://leafletjs.com/ 特性: 完全开源,可以基于不同的第三方瓦片生成地图. 基于原始GPS,无需转换 可创建离线 ...
- 【2018.05.09 Python学习及实践】个人项目中使用的Python库备忘-持续更新
科研中无论是使用C/C++.Python.Matlab,如果能找到合适的库可谓是事半功倍: 有时候忙活半天才发现本身就有成熟的库可用,自己实现的在功能.性能.安全性上都远远不及,虽然锻炼了能力,但存在 ...
- Git学习备忘
本文参考廖雪峰写的精彩的git学习文档,大家可以直接去官网看原版,我这里只是便于自己记录梳理 原版地址:http://www.liaoxuefeng.com/wiki/0013739516305929 ...
- UML学习备忘
两大类UML图: 行为图(behavior diagrams)和结构图(structure diagrams) 行为图将引导系统分析员分析且理清"系统该做些什么"?系统分析 ...
- MVC4 学习备忘
WebConfig文件里添加数据库链接字符: <add name="MovieDBContext(可以自己取字符串名字)" connectionString="Da ...
- 一滴一点vim(学习+备忘)
普通模式: h j k l 分别是左下上右方式移动: :w 保存修改 :q 推出 :wq 保存修改并退出 :q! 放弃修改强制推出 x 删除光标所在位置字符 i 在光标所以位置插入字符 删除类命令: ...
- Python笔记-备忘
一.向列表添加元素 x.append(y) #末尾添加一个元素 x.extend([y,z]) #末尾添加多个元素 x.insert(index,y) 二.向列表获取元素 x[index] 三.从列表 ...
- xml 基础学习备忘
<?xml version="1.0" encoding="UTF-8"? standalone="yes"> 这里的encod ...
随机推荐
- linux 下git使用教程
#添加所有新增文件 git add . #提交所有修改,包括删除,添加,修改 git add -A git add --all #查看状态 git status #添加一个文件 git add rea ...
- JMeter--使用URL回写来处理用户会话
如果测试的Web应用系统使用URL回写而非Cookie来保存会话信息,那么测试人员需要做一些额外的工作来测试web站点 为了正确回应URL回写,JMeter需要解析从服务器收到的HTML,并得到唯一的 ...
- Angular 4 依赖注入
一.依赖注入 1. 创建工程 ng new myangular 2. 创建组件 ng g componet product1 3. 创建服务 ng g service shared/product 如 ...
- R(6): 数据处理包dplyr
dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其它数据库的接口,本节学习dplyr包函数基本用法 ...
- ES(1): Creat linux VM on Azure
本章记录在ES集群之前的环境准备工作,主要包含的内容如下: 目录: 创建linux虚拟机 启用root用户 创建linux虚拟机 首先创建一个云服务 按向导创建云服务名称,如下 创建虚拟机, 第二步: ...
- 把存储过程SELECT INTO到临时表
在开发过程中,很多时候要把结果集存放到临时表中,常用的方法有两种. 一. SELECT INTO1. 使用select into会自动生成临时表,不需要事先创建12 select * into #te ...
- Action<T>和Func<T>委托
Action<T>和Func<T>委托 泛型Action<T>委托和Func<T>委托是系统定义的两个泛型委托. Action<T>委托表示 ...
- Django mark_safe
不用mark_safe: 用mark_safe: 用法: from django.shortcuts import render from django.utils.safestring import ...
- linux 信号处理 四 (sigaction参数说明)
sigaction函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作). 他是POSIX的信号接口,而signal()是标准C的信号接口(如果程序必须在非POSIX系统上运行,那么就应该 ...
- VS2010安装顽疾解决方法:error 25541 failed to open xml file
一.问题描述 因为之前(2012)对HDFS客户端Thrift接口的库文件封装使用的是VS2010,最近考虑做一个完整的网盘系统的客户端,就把该库文件使用起来,比较悲剧的是之前做过操作系统的还原.我的 ...