- 帖子
- 18
- 精华
- 0
- 积分
- 134
- 阅读权限
- 20
- 注册时间
- 2013-9-13
- 最后登录
- 2014-4-4
|
代码要简短,运行时间也很重要嘛~测试了一下运行时间,1000000次的测试正则要比遍历快5秒,不知道有没有更快的方法~- import re
- from functools import partial#给函数传入参数的模块,具体还有什么作用也不清楚
- from timeit import Timer#python专用测试时间模块
- class C:#定义一个类,里面包含了从字符串取出数字的两个方法
- def bianli(self,string):#遍历
- dit=[]
- for i in string:
- if i.isdigit():
- dit.append(i)
- new=''.join(dit)
- def zhengze(self,string):#正则表达式
- ne=re.findall(r'[\d|.]',string)
- if __name__=='__main__':
- string = raw_input('string:')
- bas=C()
- t_bianli=Timer(partial(bas.bianli,string))#传入参数默Timer对象,第一个参数为需要测试的语句partial使得语句能够传入参数
- t_zhengze=Timer(partial(bas.zhengze,string))
- print t_bianli.timeit()#调用方法timeit默认运行100000次输出计算时间
- print t_zhengze.timeit()
- print t_bianli.repeat()#调用repeat方法默认测试3次,每次一百万次
- print t_zhengze.repeat()
复制代码 |
|