穷举搜索就是在整个搜索空间范围内尝试每一种可能性,直到找到目标值或者整个搜索空间都找完也没有找到目标值。最常见的穷举搜索就是线性搜索,即按照顺序简单检查所有不同的可能性。
例如:2个警察追逐强盗到了一个废弃旅馆的二楼走廊,走廊有30道门,全部关闭,其中一个警察已经封锁了对面的楼梯,该如何找到强盗呢?
第一个解决方案如下:
随机打开一扇门,没有强盗,再随机打开一扇门……?
按照以上方法,特警如果运气好,可能一下就找到了;运气不好时,可能有的门找了很多遍,有的门呢一次都没找。这样就有可能出现遗漏和重复,反而找不到需要的信息。处理这种搜索空间不是很大的情况下最佳的就是穷举搜索。
第二个解决方案搜索整个楼层,把所有门打开
如何用代码实现,如下:
通过index实现:
listdata=[1,2,3,4,5,6]
x=3
i=listdata.index(x)
if(i>=0 and i<len(listdata)):< p="">
print(x,'is in data')
else:
print('{}is not in list'.format(x))
#异常处理
try:
i=listdata.index(x)
except ValueError:
print('{}is not in list'.format(x))
else:
if(i>=0 and i<len(listdata)):< p="">
print(x,'is in data')
通过in判断:
listdata=[1,2,3,4,5,6]
x=3
if(x in listdata):
print('1:',x,'is in data')
else:
print('1:{}is not in list'.format(x))
当然代码的方式肯定不止以上两种,而正则表达式解决的是很多复杂的匹配,比如查找所有以‘a’开头的,或者找所有包含3个数字的这种更一般性的问题用正则表达式是更方便的。也可以使用循环实现穷举搜索。当然,Python中的list自己就有许多函数可以实现查找。
如果大家想要学习python或者是正在学习python知识,但是苦于没有人指导,那么可以添加我们的qq群-790693323,点击添加(加群备注:领资料)不仅可以领取python学习资料,并且群内还有专业的老师定期解答大家的问题,想要学习python的小伙伴,不要错过。
相关文章
关注千锋学习站小程序
随时随地免费学习课程
扫一扫快速进入
千锋移动端页面
扫码匿名提建议
直达CEO信箱