问题:
给定一个字符集合,需要判断在特定字符串内,是否包含该集合的字符.
解决方法:
最简单,直观,效率最高的算法就是使用循环迭代.而且还具有通用性,不仅适用与字符串,也适用与其它序列.
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.)
分享到:
相关推荐
Python Cookbook 3rd Edition Python Cookbook 3rd Edition 是一本关于 Python 编程语言的 Cookbook,涵盖了 Python 编程语言的各种知识点和技术。该书共分为 17 章节,涵盖了 Python 基础知识、数据结构、文件 I...
Python Cookbook 第3版 中文版 Python Cookbook 第3版 中文版
根据提供的文件信息,内容来自于《Python Cookbook》第三版,这本书是由David Beazley和Brian K. Jones共同编著的,由O’Reilly Media, Inc.出版。在介绍这本书时,我们要关注Python编程中的数据结构和算法的应用。 ...
《Python Cookbook》提供了关于正则表达式、字符串格式化、文本分词和编码转换的技巧。 6. **面向对象编程**:Python是面向对象的语言,书中涵盖了类的定义、继承、多态,以及如何利用元类(metaclass)进行高级...
《Python CookBook》一直是较为经典的Python教程。它注重方法和技巧的讲解,能让学习者更好的理解Python这门语言,最终将技巧运用到项目中。本书作者是David Beazley大神,一位独立的计算机科学家、教育家,以及有着...
- **1.8 检查字符串是否包含特定字符集**:提供了检查字符串中是否存在某些字符的方法。 - **1.9 简化字符串的translate方法使用**:解释了如何更高效地使用Python的字符串translate方法。 - **1.10 过滤字符串中...
- 使用`in`关键字或`all()`函数结合列表推导式可以判断一个字符串是否包含特定字符集合。 - **基于字符集过滤字符串** - 通过`filter()`函数或列表推导式,可以根据字符集筛选字符串中的字符。 - **控制大小写**...
6. **3.6 检查字符串是否包含一组字符**:提供了检测字符串中是否存在特定字符或子串的方法。 7. **3.7 过滤字符串中的一组字符**:介绍了如何删除字符串中不符合条件的字符。 8. **3.8 控制大小写**:介绍了如何...
Python Cookbook(第3版)中文版.pdf 极清PDF
- **字符串开头或结尾匹配**:学习如何检查字符串是否以特定的子字符串开头或结尾。 - **用Shell通配符匹配字符串**:了解如何使用Shell风格的通配符来进行字符串匹配。 - **字符串匹配和搜索**:掌握如何使用正则...
《Python Cookbook》是一本深受Python程序员喜爱的实战指南,它由David Beazley和Brian K. Jones合著,是Python编程领域中的经典之作。这本书旨在帮助开发者解决在实际编程过程中遇到的各种问题,提供了大量实用的...
《Python Cookbook》中文版是Python编程领域的一本经典著作,由David Beazley和Brian K. Jones撰写,中文版由(美)马特利和(美)阿舍尔翻译。这本书是Python程序员的实用指南,它包含了一系列经过实战检验的代码...
7. **字符串与正则表达式**:Python的字符串操作强大,而正则表达式提供了一种匹配和操作复杂文本模式的方法。 8. **数据结构优化**:书中可能会讨论如何有效地使用`set`进行集合操作,以及如何利用`dict`的哈希...
3. **字符串和文本处理**:字符串在Python中是常用的数据类型,书中会讲解字符串的拼接、格式化输出、正则表达式匹配等。此外,还会有章节涉及文本处理,如读写文件、XML和JSON解析等。 4. **错误和异常处理**:...
Python Cookbook, 2nd Edition, Python Cookbook, 2nd Edition, Python Cookbook, 2nd Edition