这里有新鲜出炉的Python多线程编程,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
这篇文章主要介绍了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
来源: http://www.phperz.com/article/17/1021/351338.html