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 list使用示例 list中找连续的数字
Jan 27 Python
跟老齐学Python之画圈还不简单吗?
Sep 20 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
pytorch对可变长度序列的处理方法详解
Dec 08 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
Python+PyQt5实现美剧爬虫可视工具的方法
Apr 25 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 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&mysql(五)
2006/10/09 PHP
PHP控制网页过期时间的代码
2008/09/28 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
js url传值中文乱码之解决之道
2009/11/20 Javascript
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
JS中动态添加事件(绑定事件)的代码
2011/01/09 Javascript
jquery的flexigrid无法显示数据提示获取到数据
2013/07/19 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
Python数据可视化实现多种图例代码详解
2020/07/14 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
一套软件测试笔试题
2014/07/25 面试题
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
小摄影师教学反思
2014/04/27 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
Python 统计序列中元素的出现频度
2022/04/26 Python