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