Получить индекс объекта итератора python Как получить доступ к индексу текущего элемента в объекте iterator в Python? Например, при использовании функции регулярного выражения finditer, как вы можете получить доступ к индексу итератора в цикле for. re.finditer(pattern, text) Ответ 1 Итераторы не были предназначены для индексации (помните, что они производят свои вещи лениво). Вместо этого вы можете использовать enumerate для номера элементов по мере их создания: for index, match in enumerate(it): Ниже приведена демонстрация: >>> it = (x for x in range(10, 20)) >>> for index, item in enumerate(it): ... print(index, item) ... 0 10 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 >>> Обратите внимание, что вы также можете указать номер для начала подсчета по адресу: >>> it = (x for x in range(10, 20)) >>> for index, item in enumerate(it, 1): # Start counting at 1 instead of 0 ... print(index, item) ... 1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 18 10 19 >>>
Ответ 1 Итераторы не были предназначены для индексации (помните, что они производят свои вещи лениво). Вместо этого вы можете использовать enumerate для номера элементов по мере их создания: for index, match in enumerate(it): Ниже приведена демонстрация: >>> it = (x for x in range(10, 20)) >>> for index, item in enumerate(it): ... print(index, item) ... 0 10 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 >>> Обратите внимание, что вы также можете указать номер для начала подсчета по адресу: >>> it = (x for x in range(10, 20)) >>> for index, item in enumerate(it, 1): # Start counting at 1 instead of 0 ... print(index, item) ... 1 10 2 11 3 12 4 13 5 14 6 15 7 16 8 17 9 18 10 19 >>>