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破解斗地主残局详解
Jun 30 Python
python正则表达式及使用正则表达式的例子
Jan 22 Python
python中返回矩阵的行列方法
Apr 04 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
python 同时读取多个文件的例子
Jul 16 Python
Python图像处理库PIL的ImageFont模块使用介绍
Feb 26 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
python计算auc的方法
Sep 09 Python
Python使用for生成列表实现过程解析
Sep 22 Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 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 session和cookie使用说明
2010/04/07 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
Python编程中的for循环语句学习教程
2015/10/14 Python
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
django+mysql的使用示例
2018/11/23 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
实习自荐信
2013/10/13 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
班主任评语大全
2014/04/26 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
2015年工会工作总结
2015/03/30 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
MySQL 不等于的三种使用及区别
2021/06/03 MySQL