使用Python 已经一段时间了 ,现将python 中可能用到的技巧和一些知识点分享如下。
1.lambda使用。
Lambda函数,是一个匿名函数,创建语法:
lambda parameters:express
举例如下:
根据参数是否为1
决定s为yes还是no
>>> s =
lambda
x:"yes"
if
x==1
else
"no"
>>> s(0)
'no'
>>> s(1)
'yes'
2.map使用
直接上代码
>>> def
f(x):
... return
x *
x
>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]
map()传入的第一个参数是f,即函数对象本身。
3.正则表达式
[0-9] 任意一个数字,等价\d [a-z] 任意一个小写字母 [A-Z]任意一个大写字母 [^0-9] 匹配非数字,等价\D \w 等价[a-z0-9_],字母数字下划线 \W 等价对\w取非 . 任意字符 [] 匹配内部任意字符或子表达式 [^] 对字符集合取非
* 匹配前面的字符或者子表达式0次或多次 + 匹配前一个字符至少1次 ? 匹配前一个字符0次或多次 ^ 匹配字符串开头 $ 匹配字符串结束
import re
#3位数字-3到8个数字
#r代表后面是正则表达式
m = re.match(r'\d{3}\-\d{3,8}', '010-12345')
# print(dir(m))
print(m.string)
print(m.pos, m.endpos)
# 分组
#以括号分组()
m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
print(m.groups())
print(m.group(0))
print(m.group(1))
print(m.group(2))
# 分割
p = re.compile(r'\d+')
print(type(p))
print(p.split('one1two3three3four4'))
t = '20:15:45'
m=re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
print(m.groups())