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修改Excel数据的实例代码
Nov 01 Python
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
对numpy中shape的深入理解
Jun 15 Python
python实现字符串和字典的转换
Sep 29 Python
修改默认的pip版本为对应python2.7的方法
Nov 06 Python
windows下numpy下载与安装图文教程
Apr 02 Python
python Tcp协议发送和接收信息的例子
Jul 22 Python
Python文件操作基础流程解析
Mar 19 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
May 15 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 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面向对象全攻略 (九)访问类型
2009/09/30 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
python基础教程之字典操作详解
2014/03/25 Python
Python中用altzone()方法处理时区的教程
2015/05/22 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
python如何制作英文字典
2019/06/25 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
国贸专业个人求职信分享
2013/12/04 职场文书
财务部总监岗位职责
2014/03/12 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
先进班集体申报材料
2014/12/26 职场文书
班主任寄语2016
2015/12/04 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP