Python教程:Python如何实现穷举搜索?
窮舉搜索就是在整個搜索空間范圍內嘗試每一種可能性,直到找到目標值或者整個搜索空間都找完也沒有找到目標值。最常見的窮舉搜索就是線性搜索,即按照順序簡單檢查所有不同的可能性。
例如: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如何实现穷举搜索?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python教程讲解二叉树的三种深度
- 下一篇: Python教程:一篇文件教你py文件打