2011年7月27日水曜日

開発環境

  • Mac OS X Snow Leopard (OS)
  • WingIDE
  • Script言語: Python

『初めてのコンピュータサイエンス』(Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-463-7)の10章(アルゴリズム), 10.4(練習問題), 4を解いてみる。

 

.

リスト内の最も小さい2つの値を探す関数に長さが1のリスト、0のリストを渡すとそれぞれ以下の出力結果のようになる。

コード(関数)

def find_two_smallest(L):
    '''Return a tuple of the indices of the two smallest values in list L.'''
    
    smallest = min(L)
    min1 = L.index(smallest)
    L.remove(smallest)
    next_smallest = min(L)
    min2 = L.index(next_smallest)
    
    L.insert(min1, smallest)
    if min1 <= min2:
        min2 += 1

    return (min1, min2)

入出力結果(Python Shell)

リストの長さを2以上にしてくださいと警告を表示するように処理すべきだと思う。

0 コメント:

コメントを投稿