しろちゃのプログラミング日記

プログラミング初心者が勉強したことを書き留めるブログ

Python処理集!!反復処理 of for by for for イテレータ編

はじめに

この記事では、forによる反復処理とイテレータについて紹介します

なお、タイトルを直訳すると

「forのforによるイテレータのための反復処理」となります

深い意味はありません(`・ω・´)

イテレータ・イテラブルとは?

Pythonの入門書を読んで行くにあたって、

それなりに遭遇するこれらの語に悩まされた方も少なくないはず(ですよね?)


例えばしろちゃは適当に読み飛ばした挙句、

意味が分からなくなってばたんきゅーした覚えがあります


シーケンスだオブジェクトだと、

英語基準のPythonにはどうにも不可解なカタカナ語が多いのが厄介です…

そう思っているのはおばかなしろちゃだけかもしれませんが…小声

イテレータ

前置きが長くなってしまいましたが、

簡単に言うと、イテレータとは

イテレータ(英語: iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。
イテレータ - Wikipedia

我らがWikipedia大百科様によれば上記が定義となります

要するに、

「要素の数だけ反復処理を行う」

ことだと思っておいておけばいいと思います


いくつか具体例を知り、扱っていけば

おばかなしろちゃでもそれなりに…理解できるようになるでしょう。きっと。いつか。


このイテレータという概念はPythonにとどまらず、

プログラミングの世界ではかなり色々な場面で用いられています

「イテラブル(な)オブジェクト」の意味

イテラブルなんだかイラテラブルなんだかイラテルブルなんだか、

なかなか判別が難しいところですね

簡単に言えば「イテレータに対応しているオブジェクト」の意となります

つまり、イテラブルオブジェクトはイテレータによる処理が可能というわけです


あとはイテレータの意味さえ分かれば簡単ですね!

イテラブルオブジェクトの例

具体例は挙げればきりがありませんが、代表的なものを羅列しておきます

  • 文字列
  • リスト
  • タプル
  • 辞書
  • 集合


あくまで一例ですが、これらはイテラブルオブジェクトとなります

また、そうでないデータ型ももちろんあります

例えば、int型はイテラブルオブジェクトではありません

for による反復処理

反復処理の基本、whileとは似て非なるforです


whileは「条件式」に当てはまる限りループを続けますが

forは指定された範囲(回数)内で処理を行います


条件を指定するか、範囲を指定するか

主となる違いはその点だと思います

forの基本

記述は以下の通り

>>> love = ['music', 'cat', 'mom', 'blood', 'pink']
>>> for thing in love:
             print(thing)

music
cat
mom
blood
pink
>||

<span style="font-size: 80%">病み期かな?</span>

loveの大きさだけ処理を繰り返していますね


ちなみに、辞書型を処理するとキーが繰り返されます

そんなの嫌だというなら、イテラブルなオブジェクトの後ろに

「.value」「.items」を使います

すると、それぞれ「値」と「値、キーのタプル」が処理されるようになるのです!


** break による終了

whileにも言えることですが、

breakによってループを中止させることができます

不健全なワードが表示されそうになったらループを脱出しましょう

>|python|
>>> for thing in love:
            if thing == 'blood':
                break
            print(thing)
music
cat
mom

continue による巻き戻し

continueの扱いもまた、whileと同じです

不健全なワードは消し去りつつ、

そのあとの素敵なワードは是非とも表示しましょう

>>> for thing in love:
           if thing == 'blood':
               continue
           print(thing)
music
cat
mom
pink

こうして少女の闇は最小限のキリトリで覆い隠されたのでした

まとめ

今回は、反復処理の基本となる

処理に使われるforを紹介しました


イテレータは汎用性が高く、頻繁に使われるみたいなので

確実にモノにしていきましょう!

さいごに

ここまで読んで下さってありがとうございます!

例のごとく、参考はオライリー・ジャパン出版の

「入門 Python 3」Bill Lubanovic著

それに加えて

引用は「Wikipedia」でした!


以下、参考書の紹介記事です!

↓↓↓
ai-shirocha.hatenablog.com