Python でループとリターンを使用して複数の値を取得する
Python でループから複数の値を返そうとすると、制限が発生する可能性がありますreturn ステートメントを使用する場合。これは、グローバル辞書を操作する場合や外部アプリケーションと統合する場合に特に困難になる可能性があります。
提供されたコードでは、最初のアプローチでは辞書の値を表示するために print が使用されていましたが、データをローカルにのみ出力するため、Discord ボットにとって問題が発生しました。 。ただし、print を return に置き換えると、ループが途中で終了したため、戻り値が不十分でした。
この問題に対処するには、次の代替メソッドを使用できます。
Generator Yielding
このアプローチでは、ループの反復中に値が段階的に生成されます。ジェネレーター関数を使用すると、データ ストリームを作成できます:
def show_todo(): 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 サイトの他の関連記事を参照してください。