Python教程:Python如何实现穷举搜索?
窮舉搜索就是在整個搜索空間范圍內(nèi)嘗試每一種可能性,直到找到目標(biāo)值或者整個搜索空間都找完也沒有找到目標(biāo)值。最常見的窮舉搜索就是線性搜索,即按照順序簡單檢查所有不同的可能性。
例如:2個警察追逐強盜到了一個廢棄旅館的二樓走廊,走廊有30道門,全部關(guān)閉,其中一個警察已經(jīng)封鎖了對面的樓梯,該如何找到強盜呢?
第一個解決方案如下:
隨機打開一扇門,沒有強盜,再隨機打開一扇門……?
按照以上方法,特警如果運氣好,可能一下就找到了;運氣不好時,可能有的門找了很多遍,有的門呢一次都沒找。這樣就有可能出現(xiàn)遺漏和重復(fù),反而找不到需要的信息。處理這種搜索空間不是很大的情況下最佳的就是窮舉搜索。
第二個解決方案搜索整個樓層,把所有門打開
如何用代碼實現(xiàn),如下:
通過index實現(xiàn):
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))
當(dāng)然代碼的方式肯定不止以上兩種,而正則表達式解決的是很多復(fù)雜的匹配,比如查找所有以‘a(chǎn)’開頭的,或者找所有包含3個數(shù)字的這種更一般性的問題用正則表達式是更方便的。也可以使用循環(huán)實現(xiàn)窮舉搜索。當(dāng)然,Python中的list自己就有許多函數(shù)可以實現(xiàn)查找。
本文來自千鋒教育,轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的Python教程:Python如何实现穷举搜索?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python教程讲解二叉树的三种深度
- 下一篇: web前端教程:如何理解JavaScri