Я использую цикл for с индексом при переборе итерируемого объекта, чтобы перевернуть элемент итерируемого объекта. Но вы не можете получить доступ к этому индексу, используя только цикл for.

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

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

Однако иногда вам может потребоваться доступ к индексу элемента при циклическом обходе итерируемого объекта.

Например, предположим, что у вас есть такой список чисел [3, 4, 6, 7]; если вы переберете этот список и получите доступ к каждому элементу с помощью цикла for, вы получите значение, а не индекс, как показано ниже.

numbers =[3, 4, 6, 7]
for value in numbers:
    print(value)

Цикл for Python без индекса

Посмотрите на результат, он печатает только фактический элемент из списка, а не индекс. Итак, в Python существует несколько способов доступа к индексу элемента в итерируемом объекте, но здесь я рассмотрю наиболее распространенные методы.

С использованием функции enumerate()

Функция enumerate() в Python принимает итерируемый объект, присоединяет к нему счетчик (который называется индексом) и возвращает объекты перечисления, которые содержат как значения, так и их индексы.

Синтаксис:

for index, element in enumerate(iterable, start_idx=0):

Где:

  • iterable: это коллекция(например, список, кортеж и т. д.), которую вы хотите перебрать.
  • index: это переменная, в которой хранится индекс каждого элемента внутри цикла.
  • element: это переменная, которая хранит значение каждого элемента в итерируемом объекте.
  • start_idx=0: это необязательный аргумент, позволяющий указать начальный индекс.

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

products = ["laptop", "phone", "camera", "printer"]

Теперь вам нужно найти элемент «камера».

search_item = "camera"

Используйте приведенный ниже код, чтобы найти «камеру» и ее положение (значение индекса в списке).

for index, item in enumerate(products):
    if item == search_item:
        print(f"{search_item} found at position {index}")
        break

Цикл Python For с индексом

Посмотрите на рисунок выше, на котором видно, что позиция (индекс) элемента «камера» в списке равна 2.

Давайте разберемся с частью кода «для индекса, элемента в перечислении(продукты):». Эта часть инициализирует цикл for и во время итерации перебирает имя списка «продукт». Он также использует функцию enumerate() для получения элемента и соответствующего ему значения индекса.

Затем в цикле for, если оператор указан следующим образом: if item == search_item, он проверяет, равен ли текущий элемент, по которому выполняется итерация, переменной search_item.

Если он равен элементам поиска, то, используя эту строку кода «print(f»{search_item}, найденную в позиции {index}»)», он печатает serach_item и соответствующий ему индекс в качестве позиции. В результате возвращается «камера найдена в позиции 2».

С использованием функции range()

Функция range() в Python позволяет создавать последовательность чисел в пределах указанного диапазона. если указать диапазон от 1 до 10, то генерируется число от 1 до 10.

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

Например, давайте использовать тот же список «продуктов», который вы создали в разделе выше.

products = ["laptop", "phone", "camera", "printer"]

for index in range(len(products)):
  print("The index value is:",index, "and element is:", products[index])

С использованием функции range()

Посмотрите на приведенный выше вывод. Индекс каждого элемента также доступен и печатается на терминале. Например, индекс элемента «ноутбук» равен 0, «телефон» — 1 и т. д.

Давайте разберемся с частью кода «для индекса в диапазоне (len(продукты)):». Функция диапазона в Python генерирует список индексов, соответствующих элементам списка «продукты».

  • Цикл for выполняет итерацию по этому диапазону индексов, и текущий индекс сохраняется в переменной index для каждой итерации внутри цикла for.
  • Значение элемента по этому индексу печатается путем доступа к нему из списка «products[indx]» с использованием индексной переменной, которая содержит значение индекса этого элемента.

Таким образом вы получаете элемент и соответствующий ему индекс.

Добавить комментарий