def BinarySearch(alist, target): low, high = 0, len(alist)-1 while low <= high: mid = (low+high)/2 mid_val = alist[mid] if mid_val > target: high = mid - 1 elif mid_val < target: low = mid + 1 else: return mid return -1 print BinarySearch([1,2,3,5,8,9], 5) #//python/7679