Junior — Middle
118
Kako pristupiti elementu po njegovoj poziciji u generatoru u Pythonu?
Компаније где су питане
Одговор од АИ
sobes.tech АИ
Генераторы в 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
Первый способ более эффективен при работе с большими или бесконечными генераторами.