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 实现简单的电话本功能
Aug 09 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
Jan 20 Python
python实现简单遗传算法
Mar 19 Python
Python实现求一个集合所有子集的示例
May 04 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
对Python强大的可变参数传递机制详解
Jun 13 Python
Python3 合并二叉树的实现
Sep 30 Python
python模块导入的方法
Oct 24 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
Feb 26 Python
python 学习GCN图卷积神经网络
May 11 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中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
JS类定义原型方法的两种实现的区别评论很多
2007/09/12 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
vue的webcamjs集成方式
2020/11/16 Javascript
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[03:17]DOTA2-DPC中国联赛1月29日Recap集锦
2021/03/11 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
python os模块在系统管理中的应用
2020/06/22 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Python实现淘宝秒杀功能的示例代码
2021/01/19 Python
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
颁奖晚会主持词
2014/03/25 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
党支部鉴定意见
2015/06/02 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
mysql查找连续出现n次以上的数字
2022/05/11 MySQL