Py&禅

博客园 首页 新随笔 联系 订阅 管理
Problem:
检查字符串中是否存在某些字符的集合

Solution:
下面的方法可以用在任何的序列容器中
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

来个更高级,更复杂点的:
import itertools
def containsAny(seq, aset):
    for item in itertools.ifilter(aset.__contains__, seq): 
        return True
    return False

Discussion:
大多数与集合相关的操作都可以使用內建类型set:
def containAny(seq, aset):
    return bool(set(aset).intersection(seq))   #判断 aset 和 seq是否存在交集
但是这种方法有个缺点就是seq中的每个元素都要被测试


posted on 2010-06-01 13:04  Py&禅  阅读(222)  评论(0)    收藏  举报