return を使用してループから複数の値を返す
Python でループから複数の値を返すには、return だけを使用するだけでは十分ではない場合があります。提供されたコード サンプルで示されているように、ループ内で return を使用すると反復が途中で終了し、データの取得が不完全になります。
代替アプローチ:
これに対処する 1 つのアプローチ問題はジェネレーターを使用することです。ジェネレーターは、すべての値をメモリーに保管せずに一連の値を生成する特別な関数です。ジェネレーターを使用してコードを変更すると、次の結果が得られます。
def show_todo(): # Create a generator for key, value in cal.items(): yield value[0], key
このジェネレーターをリストまたはタプルの内包表記とともに使用して、データを収集できます。
a = list(show_todo()) # or tuple(show_todo())
あるいは、次のようにもできます。値を保存し、ループの完了後にそれを返すリスト:
def show_todo(): my_list = [] for key, value in cal.items(): my_list.append((value[0], key)) return my_list
最後にリスト内包表記を使用すると、同じ結果を簡潔に達成できます。
def show_todo(): return [(value[0], key) for key, value in cal.items()]
これらのメソッドを使用すると、ループから複数の値を効果的に収集して返すことができ、必要に応じてこのデータを他の関数で使用できるようになります。
以上がPython でループから複数の値を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。