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中的每个元素都要被测试
检查字符串中是否存在某些字符的集合
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中的每个元素都要被测试
