gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章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])

最后此篇关于Python检测字符串中是否包含某字符集合中的字符的文章就讲到这里了,如果你想了解更多关于Python检测字符串中是否包含某字符集合中的字符的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com