Python检测字符串中是否包含某字符集合中的字符


Posted in Python onMay 21, 2015

目的

检测字符串中是否包含某字符集合中的字符

方法

最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器

def containAny(seq,aset):

    for c in seq:

         if c in aset:

                return True

    return False

      第二种适用itertools模块来可以提高一点性能,本质上与前者是同种方法(不过此方法违背了Python的核心观点:简洁,清晰)

itertools.ifilter(predicate, iterable)的说明

Make an iterator that filters elements from iterable returning only those for which the predicate is True. If predicate is None, return the items that are true.

例如:

ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9

 import itertools
def  containAny(seq,aset):
     for item in itertools.ifilter(aset.__contain__,seq):
            return True
     return False

 

如果要检测两个字符串是否为包含关系,此时必须检查所有子项,最好适用set类型,其中set(aset).difference(seq)是指存在于aset中而seq没有的元素:

def  containAll(seq,aset):

      return not set(aset).difference(seq)

例如下面这个例子:

In [4]: L1=[1,2,3,4]
In [5]: L2=[1,4,3,1]
In [6]: containAll(L1,L2)

Out[6]: True
In [7]: containAll(L2,L1)

Out[7]: False

 

注意一下,set.symmetric_difference是指两个集合独有的元素

In [9]: L2=[3,2,4,5]

In [10]: x=set(L1)

In [11]: x.symmetric_difference(L2)

Out[11]: set([1, 5])
Python 相关文章推荐
python中MethodType方法介绍与使用示例
Aug 03 Python
开源软件包和环境管理系统Anaconda的安装使用
Sep 04 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python实现朴素贝叶斯算法
Nov 19 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
Pytorch 实现数据集自定义读取
Jan 18 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
解决django FileFIELD的编码问题
Mar 30 Python
详解Django配置JWT认证方式
May 09 Python
python爬虫要用到的库总结
Jul 28 Python
Linux下用Python脚本监控目录变化代码分享
May 21 #Python
Python批量按比例缩小图片脚本分享
May 21 #Python
初步讲解Python中的元组概念
May 21 #Python
Linux下使用python自动修改本机网关代码分享
May 21 #Python
Python字符串逐字符或逐词反转方法
May 21 #Python
Python合并字符串的3种方法
May 21 #Python
在Python中使用sort()方法进行排序的简单教程
May 21 #Python
You might like
Protoss魔法科技
2020/03/14 星际争霸
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
js document.write()使用介绍
2014/02/21 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
基于Python实现文件大小输出
2016/01/11 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
python操作kafka实践的示例代码
2019/06/19 Python
python版百度语音识别功能
2019/07/09 Python
Python 脚本实现淘宝准点秒杀功能
2019/11/13 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
英国索普公园票务和酒店套餐:Thorpe Breaks
2019/09/14 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
护理专业推荐信
2013/11/07 职场文书
企业军训感想
2014/02/07 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
如何理解python接口自动化之logging日志模块
2021/06/15 Python
解决Redis启动警告问题
2022/02/24 Redis
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android