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面向对象编程中类的继承
Jun 17 Python
Python如何快速实现分布式任务
Jul 06 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
解决Python中回文数和质数的问题
Nov 24 Python
Python连接字符串过程详解
Jan 06 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
TensorBoard 计算图的查看方式
Feb 15 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
python 多线程共享全局变量的优劣
Sep 24 Python
python 制作网站小说下载器
Feb 20 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 Static关键字实用方法
2010/06/04 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
js运动事件函数详解
2016/10/21 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
详谈python在windows中的文件路径问题
2018/04/28 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
教师个人鉴定材料
2014/02/08 职场文书
舞蹈专业求职信
2014/06/13 职场文书
学校端午节活动方案
2014/08/23 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android