`

Python Cookbook 1.8 判断字符串内是否包含指定集合的字符

阅读更多
问题:

给定一个字符集合,需要判断在特定字符串内,是否包含该集合的字符.

解决方法:

最简单,直观,效率最高的算法就是使用循环迭代.而且还具有通用性,不仅适用与字符串,也适用与其它序列.

def containsAny(seq, aset):
    """ Check whether sequence seq contains ANY of the items in aset. """
     for c in seq:
        if c in aset: return True
     return False

当然,也可以使用更高级的办法,用Python提供的迭代工具:

import itertools
def containsAny(seq, aset):
    for item in itertools.ifilter(aset._ _contains_ _, seq):
        return True
    return False

另:对于和集合相关的问题,都可以使用集合来解决.对于我们需求,可以使用下面的方式来实现:

def containsAny(seq, aset):
    return bool(set(aset).intersection(seq))

这个方法返回了两个集合的交集,也就是说,两个集合中所有的元素都进行了判断,从效率上讲,没有上面提供的两种方法好.
然而,如果需求是需要判断集合内的字符是否都包含在字符串内,使用集合提供的方法会更方便一些:

def containsAll(seq, aset):
    """ Check whether sequence seq contains ALL the items in aset. """
    return not set(aset).difference(seq)

如果需求是判读字符串内是否只包含集合内的字符,可以用下面的算法:

def containsOnly(seq, aset):
    """ Check whether sequence seq contains ONLY items in aset. """
     for c in seq:
        if c not in aset: return False
    return True

相关说明:

intersection(...)
    Return the intersection of two sets as a new set.

    (i.e. all elements that are in both sets.)

difference(...)
    Return the difference of two sets as a new set.

    (i.e. all elements that are in this set but not the other.)
分享到:
评论

相关推荐

    PythonCookbook3高清.pdf

    Python Cookbook 3rd Edition Python Cookbook 3rd Edition 是一本关于 Python 编程语言的 Cookbook,涵盖了 Python 编程语言的各种知识点和技术。该书共分为 17 章节,涵盖了 Python 基础知识、数据结构、文件 I...

    Python3 Cookbook:《Python CookBook》一直是较为经典的Python教程

    《Python CookBook》一直是较为经典的Python教程。它注重方法和技巧的讲解,能让学习者更好的理解Python这门语言,最终将技巧运用到项目中。本书作者是David Beazley大神,一位独立的计算机科学家、教育家,以及有着...

    Python Cookbook 第3版 中文版 pdf

    Python Cookbook 第3版 中文版 Python Cookbook 第3版 中文版

    OReilly - Python Cookbook.rar_Python Cookbook_cookbook_oreilly_p

    《Python Cookbook》中的每个章节都包含了清晰的示例代码,这些代码经过精心设计,可以直接应用于实际项目中。此外,www.pudn.com.txt可能是书中的一个链接或者资源列表,可能指向更多与Python相关的学习资料或讨论...

    Python Cookbook 英文版.pdf

    根据提供的文件信息,内容来自于《Python Cookbook》第三版,这本书是由David Beazley和Brian K. Jones共同编著的,由O’Reilly Media, Inc.出版。在介绍这本书时,我们要关注Python编程中的数据结构和算法的应用。 ...

    PythonCookbook.zip

    《Python Cookbook》提供了关于正则表达式、字符串格式化、文本分词和编码转换的技巧。 6. **面向对象编程**:Python是面向对象的语言,书中涵盖了类的定义、继承、多态,以及如何利用元类(metaclass)进行高级...

    Python Cookbook, 2nd Edition pdf

    - **1.8 检查字符串是否包含特定字符集**:提供了检查字符串中是否存在某些字符的方法。 - **1.9 简化字符串的translate方法使用**:解释了如何更高效地使用Python的字符串translate方法。 - **1.10 过滤字符串中...

    python cookbook 英文版

    - 使用`in`关键字或`all()`函数结合列表推导式可以判断一个字符串是否包含特定字符集合。 - **基于字符集过滤字符串** - 通过`filter()`函数或列表推导式,可以根据字符集筛选字符串中的字符。 - **控制大小写**...

    Python Cookbook

    6. **3.6 检查字符串是否包含一组字符**:提供了检测字符串中是否存在特定字符或子串的方法。 7. **3.7 过滤字符串中的一组字符**:介绍了如何删除字符串中不符合条件的字符。 8. **3.8 控制大小写**:介绍了如何...

    Python Cookbook(第3版)中文版.pdf 极清PDF

    Python Cookbook(第3版)中文版.pdf 极清PDF

    python cookbook 第三版

    - **字符串开头或结尾匹配**:学习如何检查字符串是否以特定的子字符串开头或结尾。 - **用Shell通配符匹配字符串**:了解如何使用Shell风格的通配符来进行字符串匹配。 - **字符串匹配和搜索**:掌握如何使用正则...

    Python Cookbook_python_

    《Python Cookbook》是一本深受Python程序员喜爱的实战指南,它由David Beazley和Brian K. Jones合著,是Python编程领域中的经典之作。这本书旨在帮助开发者解决在实际编程过程中遇到的各种问题,提供了大量实用的...

    python cookbook 中文版

    《Python Cookbook》中文版是Python编程领域的一本经典著作,由David Beazley和Brian K. Jones撰写,中文版由(美)马特利和(美)阿舍尔翻译。这本书是Python程序员的实用指南,它包含了一系列经过实战检验的代码...

    Python CookBook随书代码

    7. **字符串与正则表达式**:Python的字符串操作强大,而正则表达式提供了一种匹配和操作复杂文本模式的方法。 8. **数据结构优化**:书中可能会讨论如何有效地使用`set`进行集合操作,以及如何利用`dict`的哈希...

    python cookbook_python编程资料_

    3. **字符串和文本处理**:字符串在Python中是常用的数据类型,书中会讲解字符串的拼接、格式化输出、正则表达式匹配等。此外,还会有章节涉及文本处理,如读写文件、XML和JSON解析等。 4. **错误和异常处理**:...

    Python Cookbook, 2nd Edition

    Python Cookbook, 2nd Edition, Python Cookbook, 2nd Edition, Python Cookbook, 2nd Edition

Global site tag (gtag.js) - Google Analytics