Python开发过程中经常会遇到要从一个List数组中查找出符合某些条件的元素

举个例子:现在有个数组 [“www.codesou.cn”,”码农资源网”,”www.codesou.cn”,”https://www.codesou.cn”] 现在我们需要查找出 包含字符串 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)