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通过邮件服务器端口发送邮件的方法
Apr 30 Python
python实现微信自动回复功能
Apr 11 Python
利用pandas进行大文件计数处理的方法
Jul 25 Python
Windows下python3.6.4安装教程
Jul 31 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
Oct 26 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 Python
Python3 main函数使用sys.argv传入多个参数的实现
Dec 25 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
Feb 25 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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数字格式化
2006/12/06 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php中session与cookie的比较
2015/01/27 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
php实现的生成排列算法示例
2019/07/25 PHP
php面向对象重点知识分享
2019/09/27 PHP
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
浅谈React高阶组件
2018/03/28 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
关于期中考试的反思
2014/02/02 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
国家助学金感谢信
2015/01/21 职场文书
sass 常用备忘案例详解
2021/09/15 HTML / CSS