Как отфильтровать только элементы из списка, который находится в четном положении?

Вместо обработки элементов на основе его значения мне нужно запустить функцию, основанную на позиции позиции. Это пример фильтрации, основанный на содержимом списка.

only_words = filter(str.isalpha, my_list)

Я хочу создать фрагмент списка, который содержит только элементы в четном положении, а именно:

new_list = []
pos = 0
for item in my_list:
   if pos % 2 == 0:
       new_list.append(item)

Это слишком уродливо. Лучшие предложения?

Ответ 1

Вы можете использовать это: my_list[::2] (для нечетного - my_list[1::2])

Ответ 2

[v for k, v in enumerate(mylist) if k % 2 == 0]