index
- это функция поиска по списку, которая выполняет линейный обход списка, чтобы найти первую позицию данного элемента.Это объясняет ваш вводящий в заблуждение вывод - в случае дубликатов, таких как 80, index()
всегда даст вам первый индекс, который он может найти для этого элемента, а именно 10.
Используйте enumerate()
, если вызаинтересованы в получении индексов в виде кортежа для каждого элемента списка.
Кроме того, переменная i
предлагает индекс, но фактически представляет заданную температуру в списке;это вводящее в заблуждение имя переменной.
temperatures = [33, 66, 65, 62, 59, 60, 62, 64, 70, 76, 80, 69, 80, 83, 68, 79, 61, 53, 50, 49, 53, 48, 45, 39]
hour_ex = []
for i, temperature in enumerate(temperatures):
if temperature > 70:
hour_ex.append(i)
print(hour_ex) # => [9, 10, 12, 13, 15]
Рассмотрите возможность использования понимания списка, которое выполняет операцию фильтрации в перечисляемом списке:
hour_ex = [i for i, temp in enumerate(temperatures) if temp > 70]