问题:
给定一个字符集合,需要判断在特定字符串内,是否包含该集合的字符.
解决方法:
最简单,直观,效率最高的算法就是使用循环迭代.而且还具有通用性,不仅适用与字符串,也适用与其它序列.
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》一直是较为经典的Python教程。它注重方法和技巧的讲解,能让学习者更好的理解Python这门语言,最终将技巧运用到项目中。本书作者是David Beazley大神,一位独立的计算机科学家、教育家,以及有着...
Python Cookbook 第3版 中文版 Python Cookbook 第3版 中文版
《Python Cookbook》中的每个章节都包含了清晰的示例代码,这些代码经过精心设计,可以直接应用于实际项目中。此外,www.pudn.com.txt可能是书中的一个链接或者资源列表,可能指向更多与Python相关的学习资料或讨论...
根据提供的文件信息,内容来自于《Python Cookbook》第三版,这本书是由David Beazley和Brian K. Jones共同编著的,由O’Reilly Media, Inc.出版。在介绍这本书时,我们要关注Python编程中的数据结构和算法的应用。 ...
《Python Cookbook》提供了关于正则表达式、字符串格式化、文本分词和编码转换的技巧。 6. **面向对象编程**:Python是面向对象的语言,书中涵盖了类的定义、继承、多态,以及如何利用元类(metaclass)进行高级...
- **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