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实现简单的四则运算计算器
Nov 02 Python
Pandas 对Dataframe结构排序的实现方法
Apr 10 Python
Python中存取文件的4种不同操作
Jul 02 Python
python制作mysql数据迁移脚本
Jan 01 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
详解Python图像处理库Pillow常用使用方法
Sep 02 Python
python实现KNN分类算法
Oct 16 Python
Python单元测试与测试用例简析
Nov 09 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
Python return语句如何实现结果返回调用
Oct 15 Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 Python
Pytorch中的学习率衰减及其用法详解
Jun 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 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
php输出图像的方法实例分析
2017/02/16 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
JS 判断代码全收集
2009/04/28 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
对numpy中轴与维度的理解
2018/04/18 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
考博专家推荐信模板
2013/12/02 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
软件售后服务承诺书
2014/05/21 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
六年级数学教学反思
2016/02/16 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript