Можно использовать генераторное выражение:
def greater_than_five(data):
  yield from (x for x in data if x > 5)
# Пример использования:
my_list = [1, 6, 2, 7, 8, 3, 9, 4, 5]
result = greater_than_five(my_list)
for num in result:
  print(num)Или более коротко, без функции:
my_list = [1, 6, 2, 7, 8, 3, 9, 4, 5]
result = (x for x in my_list if x > 5)
for num in result:
  print(num)Чтобы вернуть все элементы списка, которые больше 5, с помощью генератора в Python, можно использовать следующий код:
    
def get_elements_greater_than_5(data):
    """
    Генератор, возвращающий элементы списка, которые больше 5.
    Args:
        data: Список чисел.
    Yields:
        Числа, большие 5.
    """
    for item in data:
        if item > 5:
            yield item
# Пример использования:
my_list = [1, 6, 2, 8, 3, 9, 4, 10]
# Создаем генератор
generator = get_elements_greater_than_5(my_list)
# Итерируемся по генератору и печатаем результаты
for element in generator:
    print(element)  # Выведет: 6 8 9 10
# Другой способ получить список из генератора:
greater_than_5_list = list(get_elements_greater_than_5(my_list))
print(greater_than_5_list) # Выведет: [6, 8, 9, 10]
    
  
  Объяснение:
get_elements_greater_than_5(data) является генератором.  Вместо return, она использует yield.yield item приостанавливает выполнение функции и возвращает текущее значение item.  При следующем запросе значения, выполнение функции возобновляется с того места, где было приостановлено.for item in data итерируется по входному списку data.if item > 5 проверяет, больше ли текущий элемент 5. Если да, то он возвращается с помощью yield.for и как преобразовать генератор в список с помощью list().Альтернативный вариант (с использованием генераторного выражения):
    
my_list = [1, 6, 2, 8, 3, 9, 4, 10]
# Генераторное выражение
generator = (item for item in my_list if item > 5)
# Итерируемся по генератору и печатаем результаты
for element in generator:
    print(element) # Выведет: 6 8 9 10
# Преобразуем генератор в список:
greater_than_5_list = list(generator)
print(greater_than_5_list) # Выведет: [6, 8, 9, 10]
    
  
  Генераторное выражение – это более компактный способ создания генератора. Оно эквивалентно функции-генератору, определенной выше, но записано в одну строку.