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中为什么要用self探讨
Apr 14 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python验证码识别教程之滑动验证码
Jun 04 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
Jun 28 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
python小项目之五子棋游戏
Dec 26 Python
keras中的卷积层&池化层的用法
May 22 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
python解包概念及实例
Feb 17 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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
PHP的Yii框架的基本使用示例
2015/08/21 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
JavaScript轮播停留效果的实现思路
2018/05/24 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
Python实现修改文件内容的方法分析
2018/03/25 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
PHP如何删除一个Cookie值
2012/11/15 面试题
学校七一活动方案
2014/01/19 职场文书
毕业留言寄语大全
2014/04/10 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
教研活动主持词
2015/07/03 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书