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的闭包和装饰器
Feb 26 Python
python中异常报错处理方法汇总
Nov 20 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
python使用rpc框架gRPC的方法
Aug 24 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
python实现全排列代码(回溯、深度优先搜索)
Feb 26 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
Jun 29 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实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
linux下php上传文件注意事项
2016/06/11 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
两种方法解决javascript url post 特殊字符转义 + & #
2016/04/13 Javascript
js实现可控制左右方向的无缝滚动效果
2016/05/29 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
pandas.read_csv参数详解(小结)
2019/06/21 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
群胜软件Java笔试题
2012/09/29 面试题
大学生个人自我鉴定
2013/12/03 职场文书
教师绩效工资方案
2014/02/01 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
测量工程专业求职信
2014/02/24 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python