Створіть генератор
У попередніх вправах ви переважно писали вирази-генератори, які використовують синтаксис включень. Можливість застосовувати синтаксис включень для виразів-генераторів значно спростила вашу роботу!
З відео згадайте, що існують не лише вирази-генератори, а й функції-генератори. Функції-генератори — це функції, які, подібно до виразів-генераторів, породжують послідовність значень замість повернення одного значення. Функція-генератор визначається так само, як звичайна функція, але щоразу, коли вона створює значення, використовує ключове слово yield замість return.
У цій вправі ви створите функцію-генератор зі схожим механізмом до виразу-генератора, який ви визначили в попередній вправі:
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)