Python数组List检索 三种方法从数组List中检索出符合要求的元素
背景
Python开发过程中经常会遇到要从一个List数组中查找出符合某些条件的元素
举个例子:现在有个数组 ["www.yesdotnet.com","garson","www.jocsoft.cn","www.u-cms.com","www.garsonhome.com"] 现在我们需要查找出 包含字符串 garson 的元素
对于这种情况,python有多种方法可以实现,现在我们就一一举例来实现
方案一:最古老,单容易理解
Python 全选
# 方法一
def Test1(str, data:List[str]):
i = 0
for item in data:
if str in item:
return i
i = i + 1
return -1
# 测试
print(Test1("garson",["www.yesdotnet.com","garson","www.jocsoft.cn","www.u-cms.com","www.garsonhome.com"]))
该方法用一个for来循环,这种方法几乎每个人都能看懂,缺点,太土了,又臭又长有么有,作为一名有追求的程序员,看到这种写法觉得有些不够优雅
方案二:使用filter检索数组
其实,python中为我们提供了filter
的方法,使用filter
方法,我们可以很简单的实现这个需求,filter有两个参数,第一个参数是一个返回bool类型的判断函数(判断元素是否符合我们的条件),第二个参数是要检索的数组,
Python 全选
# 方法二
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
函数来替代,使代码看起来更加简洁
Python 全选
def Test3(str, data:List[str]):
result = filter(lambda x:str in x,data)
lst = list(result)
return len(lst)
总结
到此,我们已经使用了三个方案来实现 Python数组List检索,从数组中检索出符合条件的元素
对比三个方案,最容易理解的就是方案一,方案二不做评价,方案三装逼利器,有么有
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 管理员