Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Функції-генератори | Визначення Значення, Що Повертається Функцією
Підручник з Функцій Python

bookФункції-генератори

Генераторна функція — це особливий тип функції, яка використовує ключове слово yield замість return для створення послідовності значень. При виклику генераторної функції повертається об'єкт-ітератор, який можна перебирати для отримання значень по одному.
Основна перевага генераторних функцій — їхня ефективність використання пам'яті. Генераторні функції створюють значення по мірі потреби, а не формують всю послідовність одразу. Це робить їх ефективними з точки зору пам'яті, особливо при роботі з великими наборами даних або нескінченними послідовностями.

Розглянемо приклад простої генераторної функції. Ця функція є генератором, який повертає логіни по одному з наданого списку:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Принцип роботи генератора полягає в тому, що він дозволяє повертати значення по одному за допомогою ключового слова yield, без збереження всіх значень у пам'яті одночасно. У нашому прикладі генератор unique_logins_from_list перебирає список логінів, повертаючи кожен з них через yield і зупиняється в цій точці. При виклику next() генератор продовжує виконання з місця зупинки, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.

Завдання

Swipe to start coding

Генерація унікальних ідентифікаторів користувачів за допомогою генераторної функції. Функція id_generator() повинна безперервно створювати ідентифікатори на кшталт "ID_1", "ID_2" тощо.

  1. Ініціалізувати змінну count зі значенням 1, оскільки ідентифікатори починаються з 1.
  2. Використати нескінченний цикл while для безперервної генерації ідентифікаторів.
  3. Застосувати yield для повернення поточного ідентифікатора у форматі f"ID_{count}".
  4. Збільшувати count на 1 після кожної ітерації.
  5. Ініціалізувати генераторний об'єкт id_gen, викликавши id_generator().

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

Awesome!

Completion rate improved to 4.35

bookФункції-генератори

Свайпніть щоб показати меню

Генераторна функція — це особливий тип функції, яка використовує ключове слово yield замість return для створення послідовності значень. При виклику генераторної функції повертається об'єкт-ітератор, який можна перебирати для отримання значень по одному.
Основна перевага генераторних функцій — їхня ефективність використання пам'яті. Генераторні функції створюють значення по мірі потреби, а не формують всю послідовність одразу. Це робить їх ефективними з точки зору пам'яті, особливо при роботі з великими наборами даних або нескінченними послідовностями.

Розглянемо приклад простої генераторної функції. Ця функція є генератором, який повертає логіни по одному з наданого списку:

12345678910111213141516
def unique_logins_from_list(login_list): # Iterate over each login in the list for login in login_list: yield login # `yield` the current login # A predefined list of available logins login_list = ["user1", "user2", "user3", "user4", "user5"] # Creating a generator instance from the login list login_generator = unique_logins_from_list(login_list) # Generate and print 5 logins, one at a time for _ in range(5): # Each call to `next()` gives the next login print(next(login_generator))
copy

Принцип роботи генератора полягає в тому, що він дозволяє повертати значення по одному за допомогою ключового слова yield, без збереження всіх значень у пам'яті одночасно. У нашому прикладі генератор unique_logins_from_list перебирає список логінів, повертаючи кожен з них через yield і зупиняється в цій точці. При виклику next() генератор продовжує виконання з місця зупинки, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.

Завдання

Swipe to start coding

Генерація унікальних ідентифікаторів користувачів за допомогою генераторної функції. Функція id_generator() повинна безперервно створювати ідентифікатори на кшталт "ID_1", "ID_2" тощо.

  1. Ініціалізувати змінну count зі значенням 1, оскільки ідентифікатори починаються з 1.
  2. Використати нескінченний цикл while для безперервної генерації ідентифікаторів.
  3. Застосувати yield для повернення поточного ідентифікатора у форматі f"ID_{count}".
  4. Збільшувати count на 1 після кожної ітерації.
  5. Ініціалізувати генераторний об'єкт id_gen, викликавши id_generator().

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
single

single

some-alt