コース01-Python

015.ループと内包表記(Loops and List Comprehensions)[Kaggle日本語訳]

  • LINEで送る

1,021 views

     

ループ

ループは、いくつかのコードを繰り返し実行する方法です。例えば、以下のような処理です。

forループは、使用する変数名(例ではplanet)とループする値のセット(例ではplanets)を使いそれらを「in」で繋げて表現します。

「in」の右側がグループ化されたものと考えられる場合は、おそらくループできるはずです。

文字列の各文字をループすることもできます。

range関数

range関数は、連続した数値を返す関数でループを書くのに非常に便利です。

例えば、ある処理を5回繰り返したい場合は以下のようになります。

whileループ

whileループは、終了条件が満たされるまで繰り返されます。

whileループの引数はブール文として評価され、ブール文がfalseと評価されるまでループが実行されます。

内包表記

リスト内包表記は、Pythonで最も愛されているユニークな機能の1つです。例えば以下のような処理になります。

リスト内包表記なしで同じことを行うには以下のような処理になります。

if条件を追加することもできます。
SQLに精通している場合は、これを「WHERE」句のようなものと考えられます。

if条件でフィルタリングし、ループ変数に変換を適用する例を次に示します。

通常、これらは1行で記述されますが、3行に分割すると、構造がより明確になる場合があります。

(SQLの類推を続けると、これらの3行はSELECT、FROM、およびWHEREと考えることができます)左側の式は、技術的にはループ変数を含む必要はありません(ただし、含まないのはかなり珍しいことです)。 以下の表現はどのように評価されますか? 「出力」ボタンを押して確認します。

リスト内包表記をmin、max、sumなどの関数と組み合わせると、数行のコードが必要になる問題に対して、印象的な1行のソリューションを実現できます。
たとえば、同じことを行う次の2つのコードセルを比較します。

リスト内包表記を使用した解決策は次のとおりです。

はるかに良いですよね?
コードの長さを最小限に抑えることだけが気になる場合は、この3番目のソリューションの方が優れています。

これらのソリューションのどれが「最良」であるかは完全に主観的です。 より少ないコードで問題を解決することは常に素晴らしいことですが、The Zen ofPythonの次の行を覚えておく価値があります。


読みやすさが重要です。


明示的は暗黙的よりも優れています。


したがって、これらのツールを使用して、コンパクトで読み取り可能なプログラムを作成します。 ただし、選択する必要がある場合は、他の人が理解しやすいコードを優先してください。

  • LINEで送る