Pythonでfor文の中に自作の関数は定義できる?パフォーマンスやメモリの観点からはどう?

今回はPythonでfor文の中に自作の関数は定義することができるのかについてご紹介いたします。



Pythonでfor文の中に自作の関数は定義できる?パフォーマンスやメモリの観点からはどう?

結論から言うとPythonの仕組みとしては可能です。

表題のことが何のことを表しているかというと、下記のようにfor文の中に自作の関数を定義できるのか、定義したとしてパフォーマンスが悪くなったりメモリ的に非効率になるのかというのが今回の議題となります。

結論から言ってこれは問題ないです。
関数をfor文の外に書いたsample1.pyとfor文の中に書いたsample2.pyを用意し、各コードでAtCoder上で実行したところ、メモリとパフォーマンスで違いはほとんど現れませんでした。

終了コード 0
実行時間 787 ms
メモリ 122144 KB

終了コード 0
実行時間 819 ms
メモリ 122080 KB

しかし私はfor文の中で自作の関数を定義することはおすすめしません。

今回は簡単な処理で検証を行いましたが、複雑な処理ではまた違った結果が出る可能性もありますし、なんとなく気持ち悪さがあるので、自作の関数を定義するときはfor文の外を推奨したいです。

終わりに

今回はPythonでfor文の中に自作の関数は定義することができるのかについてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

Youtubeチャンネル開設いたしました。
チャンネル登録者1000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Python

Posted by ちこ