プログラミング

Pythonのfor文(繰り返し,ループ)でよく使う処理を分かりやすく解説!

更新日:

Pythonでは他の言語と同様に、for文(繰り返し,ループ)が用意されています。

 

しかしこのfor文、他の言語と比較するととても特殊な挙動を持っている部分が多々あるので、

今回は、開発時に頻繁に使うであろう処理を総まとめしていきます!

 

 

Pythonの学習にはUdemyの現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル がめちゃくちゃおすすめです。(私も購入しました)

 

https://www.udemy.com/course/python-beginner/

 

 

Basic(基本)

なにはともあれ、基本形から解説していきます。

 

まず大前提として、Pythonのfor文はオブジェクト(主に配列)を基準にループするということを念頭においてください。

他の多くの言語は大体、10回繰り返すとか100繰り返すとか数が基準になっていますよね。

 

 

このように、配列の要素がそのまま取得できる形になります。

 

Range(数値の分だけループ)

range関数を使用すると、他の言語で馴染みのある風の数値指定による処理ができます。

 

 

range(3)とすると、ループが3回回るイメージですね。

 

くらいん

あれ?でもこの書き方あるならなんでオブジェクト基準って言ったの?

 

Pythonを普段使っている方ならわかるかもしれませんがrange関数というのは、引数に指定した数値のrange型のオブジェクトを生成する関数になっています。

(厳密には配列とは型が違っていますが、ここでは配列同様と考えて問題ないです。)

 

なので、実際には

range(3) => [1 , 2, 3]

 

というオブジェクトが生成されていることになり、見た目上は数値の分ループしてるようですが

Basic(基本)と同様、オブジェクトの要素ごとにループしてることになります。

 

ポイント

Pythonのfor文はオブジェクトを基準として処理される!

 

【めっちゃ便利】Enumerate(BasicとRangeを同時に処理)

enumerate関数を使用すると、BasicとRangeを同時に処理できます。

つまり一度のループで、配列の要素と数値のインデックスを取得できます。

 

 

これ使ってみると分かりますが使い所によっては半端じゃなく便利です。始まりの値が指定できるのにも注目ください。

【神】Zip(複数の配列を同時に処理)

Zip関数を使用すると、複数の配列を同時に処理できます。

つまり一度のループで、配列1の要素と配列2の要素と配列3の要素と...全て取得できます。

 

 

配列の要素数が異なる場合は要素数が少ない方を基準に繰り返しが行われます。

こんなの神です。

 

Itertools.zip_longest(zipで要素数の多い方の余りを無視しない)

itertools.zip_longest関数を使用すると、

zipで要素数の多い方の余りの要素も無視せず繰り返しを行います。

 

 

itertoolsモジュールから、zip_longestをimportして使用します。要素数の足りていない方は、デフォルトでは要素Noneが取得されますが、この値を指定することもできます。

 

複数配列の同時処理

要素数が多い方の余りを無視する => zip関数

要素数が多い方の余りを無視しない => itertools.zip_longest関数

 

以上が、今回紹介したかったfor文(繰り返し,ループ)になります!

 

【厳選】Udemyでセール時に購入すべきオススメの動画まとめ!

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

続きを見る

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-プログラミング
-, ,

Copyright© クラインの備忘壺 , 2019 All Rights Reserved.