>>> a = [1, 2, 3, 4, 5, 6, 7, 8]
>>> b = [x for x in a if not x%2]#четные значения из массива
>>> b
[2, 4, 6, 8]
>>> b = [v for k,v in enumerate(a) if not k%2]#четные значения ключей из массива
>>> b
[1, 3, 5, 7]
>>>
>>> list(enumerate(a)) #чтобы понимать как это работает
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8)]
>>>
Мне кажется решать задачки нужно самому. Но вы почитайте про
генераторы массивов.
В обоих случаях использован условный генератор - добавляет элемент если соблюдается условие. Условие это остаток от деления на 2 - если равен нулю то число четное. Инверсия чтобы четные результаты давали True(1) вместо False(0).
Функция enumerate() - очень полезная когда надо получить и элемент массива и его порядковый номер в массиве(ключ).
P.S. Кстати 0 это четный индекс по вашему или нет?