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 相关文章推荐
PyCharm安装第三方库如Requests的图文教程
May 18 Python
Python常见内置高效率函数用法示例
Jul 31 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
浅析PEP570新语法: 只接受位置参数
Oct 15 Python
通过python检测字符串的字母
Feb 18 Python
Python爬虫实现模拟点击动态页面
Mar 05 Python
利用4行Python代码监测每一行程序的运行时间和空间消耗
Apr 22 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
Python使用grequests并发发送请求的示例
Nov 05 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 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实现利用MySQL保存session的方法
2014/08/23 PHP
PHP类的反射用法实例
2014/11/03 PHP
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
[15:58]DOTA2国际邀请赛采访专栏:Tongfu.Sansheng&KingJ,DK.rOtk
2013/08/08 DOTA
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
Python实现提取文章摘要的方法
2015/04/21 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
金属材料工程个人求职的自我评价
2013/12/04 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
给朋友的赠语
2015/06/23 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
CSS实现单选折叠菜单功能
2021/11/01 HTML / CSS
python+opencv实现目标跟踪过程
2022/06/21 Python
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android