文档章节

python中针对序列A是否包含序列B的各种处理

Listjj117
 Listjj117
发布于 2014/01/03 10:54
字数 450
阅读 35
收藏 3
点赞 0
评论 0
#!coding=utf-8
def containsAny(seq,aset):
    """
    检查序列seq是否含有aset中的项
    """
    for item in seq:
        if item in aset:return True
    return False

import itertools
def containsAnyItertools(seq,aset):
    """
    性能好点,但是本质和contansAny一样
    """
    for item in itertools.ifilter(aset.__contains__,seq):
        return True
    return False

def containsAnySet(seq,aset):
    """
    seq中的每个元素都要检测,没有短路特性
    """
    return bool(set(aset).intersection(seq))

def containsAllSet(seq,aset):
    """
    检测seq中是否包含aset的所有项
    """
    #相当于aset - seq,返回属于aset但是不输入seq的元素.不要和symmetric_difference搞混,
    # symmetric_difference是属于一个期中一个序列,但是不属于both的元素集合,a^b
    return not set(aset).difference(seq)

import string
notrans = string.maketrans('','') #不做转换,可以将第一个参数转换为第二个参数
def containsAnyStr(seq,aset):
    return len(aset) != len(aset.translate(notrans,seq))

def containsAllStr(seq,aset):
    return not aset.translate(notrans,seq) # 利用translate将aset中的与seq的项相同的项删掉

def translator(fm='',to='',delete='',keep=None):
    """
    简化tring.translate的使用
    translate 比set方式快,但是不使用unicode
    """
    if len(to) == 1:to = to*len(fm)
    trans = string.maketrans(fm,to)
    if keep != None:
        allchars = string.maketrans('','') #返回经过转换后的256个可打印字符组成的string
        delete = allchars.translate(allchars,keep.translate(allchars,delete)) #得到根据需要保留的keep计算后需要删除的项
    def translate(s):
        return s.translate(trans,delete)
    return translate


class Keeper(object):
    """
    For Unicode objects, the translate() method does not accept the optional
    deletechars argument. Instead, it returns a copy of the s where all characters
    have been mapped through the given translation table which must be a mapping of Unicode
    ordinals to Unicode ordinals, Unicode strings or None. Unmapped characters are left untouched.
    Characters mapped to None are deleted
    """
    def __init__(self,keep):
        self.keep = set(map(ord,keep))
    def __getitem__(self, item): #对该类的对象执行索引的时候调用
        if item not in self.keep:
            return None
        return unichr(item)
    def __call__(self, s):
        return unicode(s).translate(self)


© 著作权归作者所有

共有 人打赏支持
Listjj117
粉丝 0
博文 2
码字总数 582
作品 0
海淀
编程入门13:Python文本处理

上一篇:编程入门12:Python异常处理 计算机经常需要对文本进行各种操作,我们知道Python语言表示文本的类型是字符串(str),其中可以包含任何字符。系统内部以标准的“统一码”(Unicode)...

starglow_leo
06/19
0
0
一张图认识Python(附基本语法总结)

一张图带你了解Python,更快入门, 视频介绍>>>> 简单学Python安全简单学Python安全">http://edu.51cto.com/center/course/lesson/index?id=263601)简单学Python安全 Python基础语法总结: ......

安全牛课堂
05/22
0
0
python序列化数据本地存放

深入# 序列化的概念很简单。内存里面有一个数据结构,你希望将它保存下来,重 用,或者发送给其他人。你会怎么做?嗯, 这取决于你想要怎么保存,怎么重用,发送给谁。很多游戏允许你在退出的...

临峰不畏
2015/01/18
0
0
zg手册 之 python2.7.7源码分析(4)-- pyc字节码文件

什么是字节码 python解释器在执行python脚本文件时,对文件中的python源代码进行编译,编译的结果就是byte code(字节码) python虚拟机执行编译好的字节码,完成程序的运行 python会为导入的模...

东昕
2014/09/20
0
0
Python常见经典 python中if __name__ == '__main__': 的解析

http://www.cnblogs.com/zhouxiansheng/p/3929247.html python中if name == 'main': 的解析 当你打开一个.py文件时,经常会在代码的最下面看到if name == 'main':,现在就来介 绍一下它的作用....

搬砖小哥
2017/11/02
0
0
《Python从小白到大牛》第7章 运算符

本章为大家介绍Python语言中一些主要的运算符(也称操作符),包括算术运算符、关系运算符、逻辑运算符、位运算符和其他运算符。 算术运算符 Python中的算术运算符用来组织整型和浮点型数据的...

tony关东升
前天
0
0
python基础(6):python 随机数函数与 sort/sorted 函数详解

1、python 随机数生成 Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。 1.1 random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 ...

大数据之路
2014/05/22
0
0
Python核心编程 6.序列:字符串、列表和元组

6.1 序列 6.1.2 序列类型操作符 seq[ind]:获得下标为ind的元素 seq[ind1:ind2]:获得下标从ind1到ind2间的元素集合 seq*expr:序列重复expr次 seq1+seq2:连接序列seq1和seq2 obj in seq:判...

黑黑的豆
2015/08/06
0
0
更深入的理解 Python 中的迭代

深入探讨 Python 的 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 Python 的 循环不会像其他语言中的 循环那样工作。在这篇文章中,我们将深入探讨 Python 的 循环来...

01%
05/26
0
0
python 简明教程_学习笔记(一)

基本概念: 1,常量 2,数, 3,字符串 使用单引号(') 你可以用单引号指示字符串,就如同这样。所有的空白,即空格和制表符都照原样保留。 使用双引号(") 在双引号中的字符串与单引号中的...

霞女
2014/05/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
16分钟前
2
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
19分钟前
1
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
21分钟前
2
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
24分钟前
0
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
29分钟前
1
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
37分钟前
2
0
http状态码与ajax的状态值

ajax状态值 1.1 200 & OK:状态请求成功

litCabbage
40分钟前
1
0
iOS动画效果合集、飞吧企鹅游戏、换肤方案、画板、文字效果等源码

iOS精选源码 动画知识运用及常见动画效果收集 3D卡片拖拽卡片叠加卡片 iFIERO - FLYING PENGUIN 飞吧企鹅SpriteKit游戏(源码) Swift封装的空数据提醒界面EmptyView 沙盒文件浏览与分享调试控...

sunnyaigd
43分钟前
2
0
AngularJS配置.run()块中设置路由事件的监听器以及过滤未经授权的请求

AngularJS中的run方法初始化全局数据,只对全局作用域起作用,如$rootScope.多个控制器之间可以共享数据,如下代码所示: <script type="text/javascript"> var m1 = angular....

孟飞阳
43分钟前
3
0
Java语言学习(十):输入/输出

Java中,I/O操作代表着输入、输出,Java所有的I/O机制都是基于数据流进行输入输出。java.io类包提供了很多的输入输出处理功能方法,大家可以参考下JDK文档中关于I/O的一些处理方法:JDK在线中...

海岸线的曙光
53分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部