Как вывести элементы с четным индексом в списке в Python

Обложка к статье "Вывод элементов с четным индексом в списке в Python"

В данной статье разберём задачу, в которой нам нужно вывести все элементы списка, которые находятся на чётных индексах, начиная с индекс 0 (0, 2, 4, 6 и т.д.). Рассмотрим несколько методов решения. Начнём с цикла for, а после разберём решения с помощью генератора списков, срезов и функции filter().

Использование цикла for

Использование цикла for является одним из наиболее простых способов вывести элементы с четным индексом из списка в Python. Мы можем пройтись по каждому индексу списка, проверить индекс на четность с помощью оператора получения остатка от деления — %. И если индекс четный, то вывести элемент, находящийся на нём. Давайте сначала посмотрим на код, а после разберём его работу.

Пример кода

# Исходный список
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Вывод элементов с четным индексом
print("Элементы с четным индексом:")
for i in range(len(numbers)):
    if i % 2 == 0:
        print(numbers[i])

Объяснение кода

  1. Сначала создается список numbers, содержащий целые числа от 1 до 9.
  2. Затем мы итерируемся по длине списка numbers с помощью range(len(numbers)). Это позволяет нам получить доступ к каждому индексу списка.
  3. На каждой итерации цикла мы проверяем, четный ли индекс с помощью операции остатка от деления i % 2 == 0. Если индекс четный, условие выполняется.
  4. Если индекс четный, мы выводим элемент списка numbers по этому индексу с помощью print(numbers[i]).

Использование генератора списков

Тот же подход мы можем использовать для решения задачи с помощью генератора списков. Этот способ имеет более компактный код. Давайте посмотрим на него, а после разберём как он работает.

Пример кода

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Используем генератор списка для выбора элементов с четными индексами
even_index_elements = [numbers[i] for i in range(len(numbers)) if i % 2 == 0]

print(even_index_elements)  # Вывод: [1, 3, 5, 7, 9]

Объяснение кода

  1. numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]: Создается исходный список numbers, содержащий числа от 1 до 9.
  2. even_index_elements = [numbers[i] for i in range(len(numbers)) if i % 2 == 0]:
    • for i in range(len(numbers)): Цикл for перебирает индексы элементов исходного списка numbers.
    • if i % 2 == 0: Условное выражение проверяет, является ли текущий индекс четным.
    • numbers[i]: Выражение выбирает элемент списка numbers по текущему индексу i.
    • Эти шаги объединены в генераторе списка, который создает новый список even_index_elements из элементов numbers, у которых четные индексы.
  3. print(even_index_elements): Выводится новый список even_index_elements, содержащий элементы с четными индексами из исходного списка numbers.

Использование срезов

Решить нашу задачу можно ещё более простым способом. Для этого нам достаточно использовать срезы строк. Нам достаточно взять первый элемент списка, а далее выбрать все остальные с шагом 2. Давайте посмотрим на код.

Пример кода

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Используем срезы для выбора элементов с четными индексами
even_index_elements = numbers[::2]

print("Элементы с четными индексами:", even_index_elements)

Объяснение кода

  1. Определение списка numbers:
    Сначала определяется список numbers, который содержит целочисленные значения от 1 до 9.
  2. Использование среза для выбора элементов с четными индексами:
    В строке кода even_index_elements = numbers[::2] используется срез numbers[::2]. Срез начинается с первого элемента списка numbers (индекс 0), а шаг равен 2, что означает, что каждый второй элемент будет включен в результат. Таким образом, срез выбирает элементы списка numbers с четными индексами.
  3. Вывод результата:
    Результат сохраняется в переменной even_index_elements и выводится на экран с помощью функции print().
  4. Результат выполнения:
    После выполнения кода на экран будет выведен список even_index_elements, содержащий элементы с четными индексами из списка numbers.

Использование функции filter()

И в конце рассмотрим способ с использованием функции filter().

Функция filter() в Python принимает два аргумента: функцию и итерируемый объект. Она создает новый итератор, который фильтрует элементы итерируемого объекта, возвращая только те, для которых функция возвращает True. Подробнее о функции можете прочитать в нашей статье.

Пример кода

# Определение списка numbers
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Фильтрация элементов с четными индексами с использованием лямбда-функции
even_index_elements = filter(lambda x: numbers.index(x) % 2 == 0, numbers)

# Преобразование результатов в список
even_index_elements_list = list(even_index_elements)

# Вывод результата
print(even_index_elements_list)  # Вывод: [1, 3, 5, 7, 9]

Объяснение кода

  1. Создаем список numbers, содержащий числа от 1 до 9.
  2. Используем функцию filter(), чтобы отфильтровать элементы списка.
  3. Для фильтрации используем лямбда-функцию lambda x: numbers.index(x) % 2 == 0. Эта функция принимает элемент списка x и проверяет, является ли индекс этого элемента четным.
  4. Результат работы filter() преобразуем в список с помощью функции list() и сохраняем в переменной even_index_elements_list.
  5. Выводим полученный список на экран.

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий