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处理大数字的方法
May 27 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
老生常谈python中的重载
Nov 11 Python
Django model select的多种用法详解
Jul 16 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
Python实现在Windows平台修改文件属性
Mar 05 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python新手学习可变和不可变对象
Jun 11 Python
Python类class参数self原理解析
Nov 19 Python
python 基于opencv实现高斯平滑
Dec 18 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
Javascript 布尔型分析
2008/12/22 Javascript
javascript 对象定义方法 简单易学
2009/03/22 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
借助javascript代码判断网页是静态还是伪静态
2014/05/05 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中条件选择和循环语句使用方法介绍
2013/03/13 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python sorted方法和列表使用解析
2019/11/18 Python
Python代码需要缩进吗
2020/07/01 Python
keras:model.compile损失函数的用法
2020/07/01 Python
python3访问字典里的值实例方法
2020/11/18 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
一年级小学生评语
2014/04/22 职场文书
节能宣传周活动总结
2014/05/08 职场文书
个人年终总结开头
2015/03/06 职场文书
好人好事新闻稿
2015/07/17 职场文书
Python道路车道线检测的实现
2021/06/27 Python