python 使用小結

LHBlog發表於2017-10-30

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

 

 

相關文章