Back to questions
Arendadata
Т-Банк
Junior — Middle
79
Как получить доступ к элементу по его позиции в генераторе в Python?
Companies where asked
Answer from AI
sobes.tech AI
Генераторы в Python не поддерживают прямой доступ по индексу, так как они создают элементы по одному и не хранят их в памяти. Чтобы получить элемент по позиции, можно:
- Использовать функцию
itertools.isliceдля пропуска первых N элементов:
import itertools
def get_element_at(gen, index):
return next(itertools.islice(gen, index, index+1))
# пример
gen = (x*x for x in range(10))
print(get_element_at(gen, 3)) # выведет 9
- Преобразовать генератор в список (если это возможно по памяти):
gen = (x*x for x in range(10))
lst = list(gen)
print(lst[3]) # 9
Первый способ более эффективен при работе с большими или бесконечными генераторами.