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使用calendar输出指定年份全年日历的方法
Apr 04 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
python学习教程之使用py2exe打包
Sep 24 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
Anaconda使用IDLE的实现示例
Sep 23 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
用PHP产生动态的影像图
2006/10/09 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
php 正则表达式小结
2009/08/31 PHP
php 多关键字 高亮显示实现代码
2012/04/23 PHP
CI框架中zip类应用示例
2014/06/17 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
php的debug相关函数用法示例
2016/07/11 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
半角全角相互转换的js函数
2009/10/16 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
2016/12/26 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
Python urlopen 使用小示例
2008/09/06 Python
python uuid模块使用实例
2015/04/08 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
python是否适合网页编程详解
2019/10/04 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
工作表现自我评价
2014/02/08 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL