Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでループを使用するためのベストプラクティスは何ですか?


これは言語に依存しない質問です。ループはほぼすべての言語に存在し、同じ原則がどこにでも適用されます。ループの最適化に関しては、コンパイラーが最も手間がかかることを理解する必要がありますが、プログラマーとしては、ループを最適化しておく必要もあります。

ループに入れるものはすべて、ループの反復ごとに実行されることを理解することが重要です。ループを最適化するための鍵は、ループの動作を最小限に抑えることです。非常に高速に見える操作でも、何度も繰り返すと時間がかかります。 1マイクロ秒かかる操作を100万回実行すると、完了するまでに1秒かかります。

ループ内で、または開始条件でさえ、len(list)のようなものを実行しないでください。

a = [i for i in range(1000000)]
length = len(a)
for i in a:
   print(i - length)

よりもはるかに高速です
a = [i for i in range(1000000)]
for i in a:
   print(i - len(a))

ループ展開(https://en.wikipedia.org/wiki/Loop_unrolling)のような手法を使用することもできます。これは、バイナリサイズを犠牲にしてプログラムの実行速度を最適化しようとするループ変換手法であり、次のような手法です。時空間のトレードオフ。

明示的なforループの代わりに、マップ、フィルターなどの関数を使用すると、パフォーマンスが向上する場合もあります。


  1. C ++の最高のオンラインチュートリアルは何ですか?

    Webには、C++の学習に役立つ多くのリソースがあります。私はあなたにC++を学ぶためにそこにある最高のリソースのいくつかのコンパイルされたリストを提供しようとしました- https://www.tutorialspoint.com/cplusplus/ −これは、C ++のほぼすべての基本トピックと中間トピックを詳細にカバーし、全体としてC ++を学習するための優れたリソースであるため、C++を学習するのに最適な場所です。 C ++のツアー(Bjarne Stroustrup)-この本は、C ++をすでに知っている人のために、C ++(言語と標準ライブラリ、およびC ++ 11の使用)の

  2. Chromeに最適なGmailプラグインは何ですか?

    Gmailを微調整して、希望どおりに機能するようにします。ソーシャルメディアアイコンを署名に統合する場合でも、連絡先に関する詳細情報を表示する場合でも、今ではなく後でメールを処理する場合でも、Chromeの無限に見える拡張機能のコレクションで対応できます。 Gmailを最大限に活用したい場合は、適切な場所に来ています。 最高のChrome拡張機能のリストに大きな誇りを持っており、定期的に更新するよう努めています。そこにはGmail関連の拡張機能がいくつかありますが、すべてが揃っているわけではありません。Gmail固有のプラグインだけにフィルタリングする方法はありません。このリストはそれを改