python字符串过滤性能比较5种方法

 更新时间:2017年06月22日 14:32:15   投稿:lqh  
这篇文章主要介绍了python字符串过滤性能比较5种方法的相关资料,需要的朋友可以参考下

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装饰器处理if...elif...else

    巧妙使用Python装饰器处理if...elif...else

    大家好,今天在 Github 阅读 EdgeDB[1] 的代码,发现它在处理大量if…elif…else的时候,巧妙地使用了装饰器,方法设计精巧,分享给大家一下,欢迎收藏学习,喜欢点赞支持
    2021-11-11
  • python判断元素是否存在的实例方法

    python判断元素是否存在的实例方法

    在本篇内容里小编给大家整理的是一篇关于python判断元素是否存在的实例方法,有需要的朋友们可以学习参考下。
    2020-09-09
  • python通过tcp发送xml报文的方法

    python通过tcp发送xml报文的方法

    今天小编就为大家分享一篇python通过tcp发送xml报文的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python 用opencv实现霍夫线变换

    python 用opencv实现霍夫线变换

    这篇文章主要介绍了python 如何用opencv实现霍夫线变换,帮助大家更好的理解和使用python处理图片,感兴趣的朋友可以了解下
    2020-11-11
  • 星球大战与Python之间的那些事

    星球大战与Python之间的那些事

    阔别十年时光,全球瞩目的第七部星球大战电影《原力觉醒》将于2016年1月9日在国内上映。它将重新燃起那段神秘的太空岁月与具有原力的宇宙时光。但是,星球大战和Python编程语言又有什么关系呢?
    2016-01-01
  • python实现简单的学生管理系统

    python实现简单的学生管理系统

    这篇文章主要为大家详细介绍了python实现简单的学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • 关于tf.matmul() 和tf.multiply() 的区别说明

    关于tf.matmul() 和tf.multiply() 的区别说明

    这篇文章主要介绍了关于tf.matmul() 和tf.multiply() 的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 简单实现python进度条脚本

    简单实现python进度条脚本

    这篇文章主要教大家如何简单实现python进度条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 如何使用Selenium实现简单的网络自动化操作指南

    如何使用Selenium实现简单的网络自动化操作指南

    Selenium是一个用于Web应用测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,这篇文章主要给大家介绍了关于如何使用Selenium实现简单的网络自动化操作的相关资料,需要的朋友可以参考下
    2024-03-03
  • 通过selenium抓取某东的TT购买记录并分析趋势过程解析

    通过selenium抓取某东的TT购买记录并分析趋势过程解析

    这篇文章主要介绍了通过selenium抓取某东的TT购买记录并分析趋势过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08

最新评论