Создание генератора
В предыдущих упражнениях вы в основном работали с выражениями-генераторами, которые используют синтаксис включений. Благодаря этому синтаксису работа с генераторными выражениями становится намного проще!
Вспомните из видео: помимо выражений-генераторов, существуют ещё и функции-генераторы. Функции-генераторы — это функции, которые, как и генераторные выражения, порождают последовательность значений вместо возврата одного результата. Функция-генератор определяется так же, как обычная функция, однако вместо ключевого слова 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)