Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Функції-Генератори | Специфікація Повернення Значення Функції
Посібник з функцій Python
course content

Зміст курсу

Посібник з функцій Python

Посібник з функцій Python

1. Що Таке Функція в Python?
2. Позиційні та Необов'язкові Аргументи
3. Довільні Аргументи
4. Специфікація Повернення Значення Функції
5. Рекурсія та Лямбда-Функції

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(), генератор продовжує з того місця, де зупинився, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.

Завдання
test

Swipe to show code editor

Створіть генератор, який генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1", "ID_2" і так далі. Кожного разу, коли ви викликаєте next(), генератор повинен повертати новий унікальний ідентифікатор.

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

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

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

Секція 4. Розділ 4
toggle bottom row

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(), генератор продовжує з того місця, де зупинився, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.

Завдання
test

Swipe to show code editor

Створіть генератор, який генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1", "ID_2" і так далі. Кожного разу, коли ви викликаєте next(), генератор повинен повертати новий унікальний ідентифікатор.

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

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

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

Секція 4. Розділ 4
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
We're sorry to hear that something went wrong. What happened?
some-alt