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在windows下实现ping操作并接收返回信息的方法
Mar 20 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
使用python对文件中的数值进行累加的实例
Nov 28 Python
python实现静态web服务器
Sep 03 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
90行Python代码开发个人云盘应用
Apr 20 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 Python
分享Python获取本机IP地址的几种方法
Mar 17 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/03/01 无线电
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
php 获取本地IP代码
2013/06/23 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
关于js datetime的那点事
2011/11/15 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
vue.js实现仿原生ios时间选择组件实例代码
2016/12/21 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
python中pygame模块用法实例
2014/10/09 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
Linux文件系统类型
2012/02/15 面试题
Linux常见面试题
2013/03/18 面试题
同学会邀请书大全
2014/01/12 职场文书
校长先进事迹材料
2014/02/01 职场文书
客房服务员岗位职责
2015/02/09 职场文书
叶问观后感
2015/06/15 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python