逐次探索
逐次探索とは、先頭から順に探したいものを探して、見つかれば終了するやつです。
関数定義の練習も兼ねています。
# coding: UTF-8
def giiko_search(TargetValue, List): #(検索値, 探索対象)
#第2引数がlist型であることの確認
if isinstance(List, list) == False:
print '引数はリストじゃないぞ'
return 0
#Listが空ではないことの確認
if len(List) == 0:
print '空のリストだぞ'
return 1
#探す
for i in range(len(List)):
if List[i] == TargetValue:
print str(i+1) + '番目で' + str(TargetValue) + 'かくにん!よかった'
return 2
print '見つからなかったぞ'
return 3
List = ['Fred', 'Alex', 'Diana', 'Byron', 'Carol']
giiko_search('Diana', List)
in演算子
答え合わせのWikipediaではもっと簡単なものが紹介されていました。
def search(list, x):
return x in list
ポイントはin演算子で、これは左側x
が右側list
の中に含まれる場合True、ない場合Falseを返すらしいです。
つまり、search(list, x)
は「ある」か「ない」かの2値を返してくれる関数だということです。