使用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())