Я написал этот код для простого линейного поиска:Линейный поиск по списку?
def floor(array, target):
i = 0
while i < len(array):
if array[i] == target:
print("The target value can be found at index: " + str(array[i]))
break
else:
i = i + 1
floor([1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14], 5)
Проблема у меня в том, что он не возвращает значения, которые я хочу. По какой-то причине он не начинает отсчет в 0, поэтому, когда я делаю цель 1, он сообщает мне, что индекс равен 1. Аналогично, если я сделаю цель 4, он даст мне второе значение 4 в индексе 4, а не один в индексе 3. Даже когда цель является более высоким числом, она, по-видимому, только один раз подсчитывает значение 4. Я не уверен, что я делаю неправильно, может кто-нибудь предложить какие-то советы?
Для дальнейшего использования, «индекс» встроенный метод для списков может сделать это для вас. Например, [4,8,15,16,23,42] .index (15) return 2. –