Pythonプログラミングのイテラブルとイテレータ

Pythonプログラミングのイテラブルとイテレータ

Pythonプログラミングにおける「イテラブルとイテレータ」は、繰り返し処理を行うためのデータ構造とその処理方法です。

イテラブル

ロボ君

イテラブルは、反復処理が可能なオブジェクトのことデス。

代表的なイテラブルとしてリスト(list)、タプル(tuple)、セット(set)、文字列(string)などがあります。

# リストはイテラブル

my_list = [1, 2, 3, 4, 5]

for item in my_list:
    print(item)

# 実行結果
# 1
# 2
# 3
# 4
# 5

イテラブルは、for文を使用して繰り返し処理を行うことができます。
for文を使用すると、コードを簡潔に書くことができ、配列の要素をまとめて処理できます。

ディクショナリのキーと値を1つずつ出力する

# ディクショナリからキーと値を取り出す

data = {"name": "Real", "age": 54}

for key, value in data.items():
    print(key, value)

# 実行結果
# name Real
# age 54

このコードは、辞書 data のキーと値を1つずつ出力しています。

リストの要素を合計する

#リストの要素を合計する

numbers = [1, 2, 3]

sum = 0
for number in numbers:
    sum += number

print(sum)

# 実行結果
# 6

このコードは、リスト numbers の要素の合計を計算しています。

イテレータ

ロボ君

イテレータは、イテラブルから要素を一つずつ取り出すためのオブジェクトデス。

iter()関数を使ってイテラブルからイテレータを生成し、next()関数を使用して要素を取り出します。

イテレータから要素を取り出す

# イテレータから要素を取り出す

numbers = [1, 2, 3]
iterator = iter(numbers)

while True:
    try:
        number = next(iterator)
        print(number)

    except StopIteration:
        break

# 実行結果   
# 1
# 2
# 3 

このコードは、iter() 関数を使用して、リスト numbers のイテレータを生成しています。
StopIteration例外が発生するまで要素を取り出します。

PythonのStopIteration例外

イテレータから要素が取り出せなくなった場合に発生する例外です。
next() メソッドが呼び出されると、イテレータは次の要素を取り出します。
イテレータの要素がすべて取り出されると、StopIteration 例外が発生します。

イテレータのイメージ

ロボ君

iter() 関数でnumbersの要素に矢印をつけて、next()関数で一つ移動するイメージデス。

りある

こんな感じかな?

numbers = [1, 2, 3]
           □, □, □
           ↑
      iterator

next(iterator)

numbers = [1, 2, 3]
           □, □, □
              ↑
      iterator

next(iterator)

numbers = [1, 2, 3]
           □, □, □
                 ↑
      iterator
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次