python字符串过滤性能比较5种方法


Posted in Python onJune 22, 2017

python字符串过滤性能比较5种方法比较

总共比较5种方法。直接看代码:

import random
import time
import os
import string

base = string.digits+string.punctuation
total = 100000

def loop(ss):
  """循环"""
  rt = ''
  for c in ss:
    if c in '0123456789':
      rt = rt + c
  return rt

def regular(ss):
  """正则表达式"""
  import re
  rt = re.sub(r'\D', '', ss)
  return rt

def filter_mt(ss):
  """函数式"""
  return filter(lambda c:c.isdigit(), ss)

def list_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([x for x in ss if isdigit(x)])

def str_tran(ss):
  """string.translate()"""
  table = string.maketrans('', '')
  ss = ss.translate(table,string.punctuation)
  return ss

if __name__ == '__main__':
  lst = []
  for i in xrange(total):
    num = random.randrange(10, 50)
    ss = ''
    for j in xrange(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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python的标准模块包json详解
Mar 13 Python
Django后台获取前端post上传的文件方法
May 28 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
linux安装python修改默认python版本方法
Mar 31 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 Python
Pycharm远程调试原理及具体配置详解
Aug 08 Python
python实现多进程通信实例分析
Sep 01 Python
Python绘制二维曲线的日常应用详解
Dec 04 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
Dec 03 Python
python中实现栈的三种方法
Dec 19 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
Python编程实现的简单Web服务器示例
Jun 22 #Python
Python实现复杂对象转JSON的方法示例
Jun 22 #Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 #Python
基于Python3 逗号代码 和 字符图网格(详谈)
Jun 22 #Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 #Python
使用python在本地电脑上快速处理数据
Jun 22 #Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 #Python
You might like
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
两个强悍的php 图像处理类1
2009/06/15 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
2015/10/23 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
12步教你理解Python装饰器
2016/02/25 Python
Python实现购物车程序
2018/04/16 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
餐厅考勤管理制度
2014/01/28 职场文书
给学校建议书范文
2014/05/13 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android