Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ジェネレーター関数 | 関数の戻り値の仕様
Python関数チュートリアル
セクション 4.  4
single

single

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()が呼ばれると、ジェネレーターは中断した位置から再開し、__リスト全体を同時にメモリに保持することなく__効率的に値を生成します。これにより、ジェネレーターは大規模なデータセットやデータストリームの処理に特に有用です。

タスク

スワイプしてコーディングを開始

ジェネレーター関数を使用してユニークなユーザーIDを生成します。id_generator()関数は、"ID_1""ID_2"などの識別子継続的に生成する必要があります。

  1. 識別子が1から始まるため、変数count1で初期化します。
  2. 無限whileループを使用して、継続的に識別子を生成します。
  3. yieldを使って、f"ID_{count}"の形式で現在の識別子返します
  4. 各イテレーションの後にcountを1ずつ増加させます。
  5. ジェネレーターオブジェクトid_genid_generator()の呼び出しで初期化します。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt