Зміст курсу
Посібник з функцій Python
Посібник з функцій Python
Функції-Генератори
Функція-генератор — це спеціальний тип функції, яка використовує ключове слово yield
замість return
для генерації послідовності значень. Коли викликається функція-генератор, вона повертає об'єкт-ітератор, який можна перебирати, щоб отримувати значення одне за одним.
Основна перевага функцій-генераторів — це їхня ефективність використання пам'яті. Функції-генератори генерують значення на льоту, коли вони потрібні, замість того, щоб генерувати всю послідовність заздалегідь. Це робить їх ефективними з точки зору пам'яті, особливо при роботі з великими наборами даних або нескінченними послідовностями.
Розглянемо приклад простого генератора. Ця функція є генератором, який повертає логіни один за одним з наданого списку:
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))
Принцип генератора полягає в тому, що він дозволяє повертати значення одне за одним за допомогою ключового слова yield
, без збереження їх усіх у пам'яті одночасно. У нашому прикладі генератор unique_logins_from_list
ітерує через список логінів, повертаючи кожен з них на yield
і зупиняючись у цій точці. Коли викликається next()
, генератор продовжує з того місця, де зупинився, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.
Swipe to start coding
Створіть генератор, який генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1"
, "ID_2"
і так далі. Кожного разу, коли ви викликаєте next()
, генератор повинен повертати новий унікальний ідентифікатор.
Рішення
Дякуємо за ваш відгук!
Функції-Генератори
Функція-генератор — це спеціальний тип функції, яка використовує ключове слово yield
замість return
для генерації послідовності значень. Коли викликається функція-генератор, вона повертає об'єкт-ітератор, який можна перебирати, щоб отримувати значення одне за одним.
Основна перевага функцій-генераторів — це їхня ефективність використання пам'яті. Функції-генератори генерують значення на льоту, коли вони потрібні, замість того, щоб генерувати всю послідовність заздалегідь. Це робить їх ефективними з точки зору пам'яті, особливо при роботі з великими наборами даних або нескінченними послідовностями.
Розглянемо приклад простого генератора. Ця функція є генератором, який повертає логіни один за одним з наданого списку:
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))
Принцип генератора полягає в тому, що він дозволяє повертати значення одне за одним за допомогою ключового слова yield
, без збереження їх усіх у пам'яті одночасно. У нашому прикладі генератор unique_logins_from_list
ітерує через список логінів, повертаючи кожен з них на yield
і зупиняючись у цій точці. Коли викликається next()
, генератор продовжує з того місця, де зупинився, ефективно повертаючи значення без необхідності зберігати весь список у пам'яті одночасно. Це робить генератори особливо корисними для обробки великих наборів даних або потоків даних.
Swipe to start coding
Створіть генератор, який генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1"
, "ID_2"
і так далі. Кожного разу, коли ви викликаєте next()
, генератор повинен повертати новий унікальний ідентифікатор.
Рішення
Дякуємо за ваш відгук!