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