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 bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
Python 私有函数的实例详解
Sep 11 Python
Python简单实现控制电脑的方法
Jan 22 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
pandas取出重复数据的方法
Jul 04 Python
python中的global关键字的使用方法
Aug 20 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
Django框架实现在线考试系统的示例代码
Nov 30 Python
python文件名批量重命名脚本实例代码
Apr 22 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
php strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
javascript this用法小结
2008/12/19 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
jQuery 无限级菜单的简单实例
2014/02/21 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
js电话号码验证方法
2015/09/28 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
详解supervisor使用教程
2017/11/21 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
Windows和Linux动态库应用异同
2016/07/28 面试题
电气技术员岗位职责
2013/11/19 职场文书
总结表彰大会主持词
2014/03/26 职场文书
宣传普通话标语
2014/06/27 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
初中语文教学随笔
2015/08/15 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书