python字符串过滤性能比较5种方法
作者:lqh 发布时间:2021-09-26 18:35:25
标签:python,字符串,过滤
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
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


猜你喜欢
- 前言SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其
- 字典转换为字符串if __name__ == '__main__': a = {'a' : 1,
- 一、前言前几天在Python钻石交流群分享了一个Python基础的问题,这里拿出来给大家分享下,一起学习下。编写程序,输入若干整数(整数之间
- re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要
- 本文通过一个实际的散点图案例,展示了如何使用pyqt5嵌套一个pyecharts图层的方法,通过这个技巧,可以在pyqt5的框架中也实现精美
- 本文实例讲述了Python实现的txt文件去重功能。分享给大家供大家参考,具体如下:# -*- coding:utf-8 -*-#! pyt
- 这篇文章主要介绍了Python django框架输入汉字,数字,字符转成二维码实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作
- 1、保存整个网络结构信息和模型参数信息:torch.save(model_object, './model.pth')直接加
- Python 正则表达式是什么学习 Python 正则表达式离不开 re 模块,所以本篇博客会配合 re 模块进行编写。re 库是 Pyth
- import numpy as npimport pandas as pdimport matplotlib.pylab as pltif
- 1.简述:xlrd是读取excel表格数据;支持 xlsx和xls 格式的excel表格;三方模块安装方式:pip3 install xlr
- 引言写这个小爬虫主要是为了爬校园论坛上的实习信息,主要采用了Requests库源码URLs.py主要功能是根据一个初始url(包含page页
- 目录1. 为什么选择Playwright1.1 Playwright的优势1.2 已知局限性2. Playwright使用2.1 安装2.2
- 一、urllib库是什么?urllib库用于操作网页 URL,并对网页的内容进行抓取处理urllib包 包含以下几个模块:urllib.re
- 1.垂直影像拼接 vconcat# -*- coding: utf-8 -*-import cv2image = cv2.imread(&q
- 解决方法: 1。 改表法。 可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mys
- 动态展示这是一个动态图哦导读兄弟们可以收藏一下哦!情人节可以送出去,肥学找了几朵python写的花给封装好送给大家。不是多炫酷但是有足够的用
- Vue这个框架就不简单介绍了,它最大的特性就是数据的双向绑定以及虚拟dom.核心就是用数据来驱动视图层的改变.先看一段代码.一、示例var
- 线程池map()方法传递多参数list之前通过threading.thread()进行了助力接口的多线程并发,但是这个针对并发数量较少的时候
- 读取一个已经保存了的字典f = open('dict_th','r')a = f.read()dict_hi