目的
检测字符串中是否包含某字符集合中的字符
方法
最简洁的方法如下,清晰,通用,快速,适用于任何序列和容器
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
def containAny(seq,aset):
for item in itertools.ifilter(aset.__contain__,seq):
return True
return False
如果要检测两个字符串是否为包含关系,此时必须检查所有子项,最好适用set类型,其中set(aset).difference(seq)是指存在于aset中而seq没有的元素:
例如下面这个例子:
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是指两个集合独有的元素
新闻热点
疑难解答
图片精选