Python开发过程中经常会遇到要从一个List数组中查找出符合某些条件的元素
举个例子:现在有个数组 [“www.02405.com”,”零五网”,”02405.com”,”https://www.02405.com”] 现在我们需要查找出 包含字符串 02405 的元素
对于这种情况,python有多种方法可以实现,现在我们就一一举例来实现
方法一:使用for循环
# 方法一
def Test1(str, data:List[str]):
i = 0
for item in data:
if str in item:
return i
i = i + 1
return -1
方法二:使用filter方法
其实,python中为我们提供了filter
的方法,使用filter
方法,我们可以很简单的实现这个需求,filter有两个参数,第一个参数是一个返回bool类型的判断函数(判断元素是否符合我们的条件),第二个参数是要检索的数组,
# 方法二
def Test2(str, data:List[str]):
def filterBody(x):
return str in x
result = filter(filterBody,data)
lst = list(result)
return len(lst)
方法三:使用lambda表达式函数
该方法就是把方法二的filterBody函数用lambda
函数来替代,使代码看起来更加简洁
def Test3(str, data:List[str]):
result = filter(lambda x:str in x,data)
lst = list(result)
return len(lst)