Функції-Генератори
Функція-генератор — це спеціальний тип функції, яка використовує ключове слово yield
замість return
для генерації послідовності значень. Коли викликається функція-генератор, вона повертає об'єкт-ітератор, який можна перебирати, щоб отримувати значення одне за одним.
Основна перевага функцій-генераторів — це їхня ефективність використання пам'яті. Функції-генератори генерують значення на льоту, коли вони потрібні, замість того, щоб генерувати всю послідовність заздалегідь. Це робить їх ефективними з точки зору пам'яті, особливо при роботі з великими наборами даних або нескінченними послідовностями.
Розглянемо приклад простого генератора. Ця функція є генератором, який повертає логіни один за одним з наданого списку:
12345678910111213141516def 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()
, генератор повинен повертати новий унікальний ідентифікатор.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.35
Функції-Генератори
Свайпніть щоб показати меню
Функція-генератор — це спеціальний тип функції, яка використовує ключове слово yield
замість return
для генерації послідовності значень. Коли викликається функція-генератор, вона повертає об'єкт-ітератор, який можна перебирати, щоб отримувати значення одне за одним.
Основна перевага функцій-генераторів — це їхня ефективність використання пам'яті. Функції-генератори генерують значення на льоту, коли вони потрібні, замість того, щоб генерувати всю послідовність заздалегідь. Це робить їх ефективними з точки зору пам'яті, особливо при роботі з великими наборами даних або нескінченними послідовностями.
Розглянемо приклад простого генератора. Ця функція є генератором, який повертає логіни один за одним з наданого списку:
12345678910111213141516def 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()
, генератор повинен повертати новий унікальний ідентифікатор.
Рішення
Дякуємо за ваш відгук!
Awesome!
Completion rate improved to 4.35single