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中计算三角函数之cos()方法的使用简介
May 15 Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
python实现发送邮件功能
Jul 22 Python
Python tkinter事件高级用法实例
Jan 31 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
python实现代码统计器
Sep 19 Python
python 读取数据库并绘图的实例
Dec 03 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
基于python实现检索标记敏感词并输出
May 07 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 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
极典R601SW收音机
2021/03/02 无线电
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
解决laravel 5.1报错:No supported encrypter found的办法
2017/06/07 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
Javascript中引用示例介绍
2014/02/21 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
JavaScript必知必会(三) String .的方法来自何方
2016/06/08 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
用云开发Cloudbase实现小程序多图片内容安全监测的代码详解
2020/06/07 Javascript
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
python getpass模块用法及实例详解
2019/10/07 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
Python random模块的使用示例
2020/10/10 Python
模具数控专业自荐信
2014/01/27 职场文书
安全口号大全
2014/06/21 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
鲁冰花观后感
2015/06/10 职场文书
校长新学期致辞
2015/07/30 职场文书