python字符串过滤性能比较5种方法
python字符串过滤性能比较5种方法比较
总共比较5种方法。直接看代码:
importrandom
importtime
importos
importstring
base=string.digits+string.punctuation
total=100000
defloop(ss):
"""循环"""
rt=''
forcinss:
ifcin'0123456789':
rt=rt+c
returnrt
defregular(ss):
"""正则表达式"""
importre
rt=re.sub(r'\D','',ss)
returnrt
deffilter_mt(ss):
"""函数式"""
returnfilter(lambdac:c.isdigit(),ss)
deflist_com(ss):
"""列表生成式"""
isdigit={'0':1,'1':1,'2':1,'3':1,'4':1,
'5':1,'6':1,'7':1,'8':1,'9':1}.has_key
return''.join([xforxinssifisdigit(x)])
defstr_tran(ss):
"""string.translate()"""
table=string.maketrans('','')
ss=ss.translate(table,string.punctuation)
returnss
if__name__=='__main__':
lst=[]
foriinxrange(total):
num=random.randrange(10,50)
ss=''
forjinxrange(num):
ss=ss+random.choice(base)
lst.append(ss)
s1=time.time()
map(loop,lst)
print"loop:",time.time()-s1
print'*'*20
s1=time.time()
map(regular,lst)
print"regular:",time.time()-s1
print'*'*20
s1=time.time()
map(str_tran,lst)
print"str_tran:",time.time()-s1
print'*'*20
s1=time.time()
map(filter_mt,lst)
print"filter_mt:",time.time()-s1
print'*'*20
s1=time.time()
map(list_com,lst)
print"list_com:",time.time()-s1
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短