Зміст курсу
Посібник з функцій 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 show code editor
Створіть генератор, який генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "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 show code editor
Створіть генератор, який генерує унікальні ідентифікатори. Ідентифікатори можуть бути, наприклад, рядками у форматі "ID_1"
, "ID_2"
і так далі. Кожного разу, коли ви викликаєте next()
, генератор повинен повертати новий унікальний ідентифікатор.
Дякуємо за ваш відгук!