2013-03-15

線形探索改良版 for~elseを使う

前に書いた線形探索法(リニアサーチ)をfor~elseで改良してみました。

#!/usr/bin/env python
#-*- coding: utf-8 -*-

def linearSearch():
    array = [4, 2, 3, 5, 1]
    for i, e in enumerate(array):
        if e == 5:
            print "array[%d] is 5." % i
            break
    else:
        print "5 doesn't exist in the array."

if __name__ == '__main__':
    linearSearch()

elseってif文と組み合わせて使うのが普通だけど、何かの本でfor~elseという書き方ができると知ったので使ってみました。

for~elseと書くと、forループが全部終わった時に実行されます。ただし、breakするとelse以降は実行されません。

前回書いた線形探索法と比べて探している数字が見つかったかどうかを判断するansという変数が不要になり少しスッキリしました。

0 件のコメント:

コメントを投稿