НачатьНачать бесплатно

Создание генератора

В предыдущих упражнениях вы в основном работали с выражениями-генераторами, которые используют синтаксис включений. Благодаря этому синтаксису работа с генераторными выражениями становится намного проще!

Вспомните из видео: помимо выражений-генераторов, существуют ещё и функции-генераторы. Функции-генераторы — это функции, которые, как и генераторные выражения, порождают последовательность значений вместо возврата одного результата. Функция-генератор определяется так же, как обычная функция, однако вместо ключевого слова return в ней используется yield.

В этом упражнении вы создадите функцию-генератор с механизмом, аналогичным генераторному выражению из предыдущего упражнения:

lengths = (len(person) for person in lannister)

Это упражнение является частью курса

Инструментарий Python

Посмотреть курс

Инструкции к упражнению

  • Завершите заголовок функции get_lengths(), которая принимает один параметр — input_list.
  • В цикле for внутри функции используйте yield, чтобы возвращать длину каждой строки из input_list.
  • Завершите итерируемую часть цикла for, который выводит значения, порождаемые функцией-генератором get_lengths(). Передайте в вызов get_lengths() список lannister.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Create a list of strings
lannister = ['cersei', 'jaime', 'tywin', 'tyrion', 'joffrey']

# Define generator function get_lengths
def ____:
    """Generator function that yields the
    length of the strings in input_list."""

    # Yield the length of a string
    for person in input_list:
        ____

# Print the values generated by get_lengths()
for value in ____:
    print(value)
Редактировать и запускать код