Python检测字符串中是否包含某字符集合中的字符

 更新时间:2015年05月21日 10:54:18   投稿:junjie  
这篇文章主要介绍了Python检测字符串中是否包含某字符集合中的字符,需要的朋友可以参考下

目的

  检测字符串中是否包含某字符集合中的字符

方法

  最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器

复制代码 代码如下:

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])

相关文章

  • 不到40行代码用Python实现一个简单的推荐系统

    不到40行代码用Python实现一个简单的推荐系统

    这篇文章主要给大家介绍了如何利用不到40行python代码实现一个简单的推荐系统,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Python编程源码报错解决方法总结经验分享

    Python编程源码报错解决方法总结经验分享

    这篇文章主要介绍了在平时Python编程工作中一些源码报错的解决方法总结经验分享,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • numpy多级排序lexsort函数的使用

    numpy多级排序lexsort函数的使用

    本文主要介绍了numpy多级排序lexsort函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • anaconda中安装的python环境中没有pip3的问题及解决

    anaconda中安装的python环境中没有pip3的问题及解决

    这篇文章主要介绍了anaconda中安装的python环境中没有pip3的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 基于python 取余问题(%)详解

    基于python 取余问题(%)详解

    这篇文章主要介绍了基于python 取余问题(%)详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python 中的参数传递、返回值、浅拷贝、深拷贝

    Python 中的参数传递、返回值、浅拷贝、深拷贝

    这篇文章主要介绍了Python 中的参数传递、返回值、浅拷贝、深拷贝,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 通过Python中的http.server搭建文件上传下载服务功能

    通过Python中的http.server搭建文件上传下载服务功能

    通过本文我们学习了如何使用Python的http.server模块搭建一个基本的HTTP服务器,并实现文件下载服务,介绍了如何设置服务器端口、自定义文件目录、定制HTTP响应头以及处理GET请求,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • python argparser的具体使用

    python argparser的具体使用

    这篇文章主要介绍了python argparser的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • python Django框架实现web端分页呈现数据

    python Django框架实现web端分页呈现数据

    这篇文章主要介绍了python Django框架实现web端分页呈现数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • pytorch下大型数据集(大型图片)的导入方式

    pytorch下大型数据集(大型图片)的导入方式

    今天小编就为大家分享一篇pytorch下大型数据集(大型图片)的导入方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论