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 threading多线程编程实例
Sep 18 Python
python实现根据图标提取分类应用程序实例
Sep 28 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
python实现事件驱动
Nov 21 Python
Python简易版停车管理系统
Aug 12 Python
基于Python中的yield表达式介绍
Nov 19 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
Python json格式化打印实现过程解析
Jul 21 Python
Python基于Serializer实现字段验证及序列化
Nov 04 Python
python 装饰器重要在哪
Feb 14 Python
解析python中的jsonpath 提取器
Jan 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
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
关于this和self的使用说明
2010/08/01 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
基于zepto.js简单实现上传图片
2016/06/21 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
理解 JavaScript EventEmitter
2018/03/29 Javascript
详解React中setState回调函数
2018/06/14 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
python实现简单飞行棋
2020/02/06 Python
英国香水店:The Perfume Shop
2017/03/27 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
网络书店创业计划书
2014/02/07 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
竞聘书格式及范文
2014/03/31 职场文书
员工入职担保书范文
2014/04/01 职场文书
中学生操行评语
2014/04/24 职场文书
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL