Определить функцию генератора Python

Есть такая задача:

Определите функцию генератора get_odds(), которая возвращает нечётные числа из диапазона range(10). Используйте цикл For, чтобы найти и вывести третье возвращённое значение.

Я начал вот так:

def get_odds():
    for i in range(10):
        if i%2==1:
            print(i)
get_odds()

Но нужно как-то вывести именно третье значение.


Ответы (2 шт):

Автор решения: splash58

В генераторе не надо ничего выводить. А в цикле можно воспользоваться enumerate или просто сделать переменную и увеличивать на единицу при каждом проходе цикла

def get_odds():
    for i in range(10):
        if i % 2:
            yield i

for i, x in enumerate(get_odds()):
    if i == 2:
        print(x)
→ Ссылка
Автор решения: Сергей Ш
def get_odds(index):
    x = [i for i in range(10) if i % 2]
    return x[index - 1]

print(get_odds(3))

def get_odds():
    for i in range(10):
        if i % 2:
            yield i

index = 3
print(list(get_odds())[index-1])
→ Ссылка