1. Python関数の戻り値が複数の場合の基本
Pythonでは、一つの関数から複数の値を返すことができます。この特性を利用することで、より複雑なプログラムをシンプルに表現することが可能です。
では、具体的にどのように書けば良いのでしょうか。簡単な例から見ていきましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 |
def func(): return 1, 2, 3 def main(): a, b, c = func() print(a) print(b) print(c) if __name__ == "__main__": main() |
上記の例では、func関数は1,2,3という3つの値を返しています。そして、main関数ではこの戻り値を3つの変数a,b,cに代入しています。
出力結果を見てみましょう。
出力結果
1
2
3
2. 戻り値を利用する際の注意点
Pythonの関数から複数の値を返す特性は便利ですが、注意点もあります。
戻り値の数と受け取る変数の数が一致しない場合、エラーが発生します。では、具体的なコードで確認しましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
def func(): return 1, 2, 3 def main(): a, b = func() # Error here print(a) print(b) if __name__ == "__main__": main() |
上記の例では、func関数が3つの値を返すにも関わらず、main関数では2つの変数で受け取ろうとしています。
このコードを実行すると、エラーが発生します。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 リストとラムダ式を理解すれば、Pythonプログラミングの世界が変わる 第1版
3. 複数の戻り値をリストやタプルで受け取る
しかし、全ての戻り値を一度に一つの変数で受け取りたい場合もあるでしょう。その場合はリストやタプルを利用します。
以下に具体的な例を見ていきましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 |
def func(): return 1, 2, 3 def main(): results = func() print(results) if __name__ == "__main__": main() |
この例では、func関数の戻り値を一つの変数resultsで受け取っています。このresultsはタプルとなります。
出力結果を確認しましょう。
出力結果
(1, 2, 3)
4. 戻り値をディクショナリで受け取る
また、戻り値が多数になると、どの値が何を表すのかわかりにくくなる可能性があります。そのような場合、ディクショナリを使って戻り値を返すこともあります。
以下の例を見てみましょう。
ソースコード例
1 2 3 4 5 6 7 8 9 |
def func(): return {"value1": 1, "value2": 2, "value3": 3} def main(): results = func() print(results) if __name__ == "__main__": main() |
上記の例では、関数がディクショナリ形式で戻り値を返しています。これにより、それぞれの戻り値が何を表しているかが明確になります。
出力結果を確認しましょう。
出力結果
{'value1': 1, 'value2': 2, 'value3': 3}
5. まとめ
Pythonでは、一つの関数から複数の値を返すことができます。これはプログラムをシンプルに表現する上でとても有用です。しかし、戻り値の数と受け取る変数の数が一致しなければならない点や、戻り値が多い場合の可読性に注意が必要です。
また、全ての戻り値を一つの変数で受け取る方法や、戻り値をディクショナリで返す方法なども学びました。これらの知識を活用して、より効率的で可読性の高いコードを書いていきましょう。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!